En este capítulo se explican las variables de configuración NVRAM y los comandos de OpenBoot PROM (OBP) disponibles para configurar los siguientes aspectos del funcionamiento del sistema Ultra 450:
Sondeo UPA
Sondeo PCI
Intercalado de memoria
Supervisión y control del entorno
Recuperación automática del sistema (ASR, automatic system recovery)
Estas son las variables de configuración NVRAM explicadas en este capítulo:
upa-port-skip-list
pci0-probe-list
pci-slot-skip-list
memory-interleave
env-monitor
asr-disable-list
auto-boot-on-error?
diag-trigger
Estos son los comandos OBP que se explican en este capítulo:
asr-enable
asr-disable
.asr
Los sistemas Ultra 450, como todos los sistemas UltraSPARC(TM), están basados en el bus UPA (Ultra Port Architecture) de alta velocidad, un bus de sistema conmutado, que proporciona hasta 32 ID de direcciones de puertos (o ranuras) para dispositivos de alta velocidad incorporados a la placa base, como pueden ser las CPU, puentes de E/S y memorias intermedias de trama. Aunque la mayoría de los sistemas Ultra utilizan sólo tres o cuatro puertos UPA activos, el sistema Ultra 450 proporciona hasta nueve puertos activos distribuidos en los siguientes subsistemas.
Tabla 2-1 Puertos activos
Tipo de dispositivo |
Ranura UPA |
Implementación física |
---|---|---|
CPU |
0-3 |
Cuatro ranuras de conexión |
Puente UPA-PCI |
4,6,1f |
Soldado a la placa base |
Memoria intermedia de trama para gráficos UPA |
1d, 1e |
Dos ranuras de conexión |
El usuario no puede controlar el orden de sondeo de estos nueve identificadores de puerto, pero sí puede excluir determinados puertos del sondeo a través de la variable NVRAM upa-port-skip-list. En el ejemplo siguiente, esta variable se utiliza para excluir uno de los puentes UPA-PCI y la primera tarjeta de gráficos UPA de la lista de sondeo.
ok setenv upa-port-skip-list 4,1d
Esta función permite excluir un determinado dispositivo del sondeo (y su posterior utilización) realizado por el sistema sin tener que retirar físicamente la tarjeta. Puede resultar útil para detectar cualquier tarjeta que no funcione correctamente en un sistema que experimente fallos transitorios.
De los seis buses PCI del sistema Ultra 450, el bus 0 (/pci@1f,4000 en el árbol de dispositivos) es el único que contiene dispositivos de la placa base (no extraíbles) como los controladores Ethernet y SCSI estándar. Por definición, estos dispositivos no pueden extraerse e intercambiarse para cambiar el orden en que se sondean. Para controlar su orden de sondeo, el sistema proporciona la variable NVRAM pci0-probe-list. Controla tanto el orden como la exclusión de dispositivos del sondeo del bus 0. Los valores de pci0-probe-list se indican en la tabla siguiente.
Tabla 2-2 Valores de pci0-probe-list
Número de dispositivo PCI |
Función |
---|---|
0 |
Puente de buses UPA-PCI (no se sondea) |
1 | Interfaz EBus/Ethernet (siempre se sondea, nunca se incluye en la lista de sondeo) |
2 |
Controlador SCSI integrado en placa para soportes extraíbles y puerto SCSI externo |
3 |
Controlador SCSI integrado en placa para placas de conexión UltraSCSI de cuatro ranuras |
4 |
Ranura 10 PCI del panel posterior |
Los valores de esta lista se basan en los números de dispositivo PCI y no hacen referencia al esquema de numeración de 1 a 10 utilizado para identificar las ranuras del panel posterior.
En el ejemplo siguiente, la variable pci0-probe-list se utiliza para definir un orden de sondeo de 3-4, y excluir de la lista de sondeo el controlador SCSI integrado en la placa para soportes extraíbles y puerto SCSI externo.
ok setenv pci0-probe-list 3,4
El orden de sondeo de los cinco buses PCI restantes (ranuras PCI de 1 a 9) no está controlado por el usuario. Estas ranuras siempre se sondean en el orden siguiente: 5-3-2-1-4-9-8-7-6. No obstante, es posible excluir del sondeo determinadas ranuras PCI utilizando la variable NVRAM pci-slot-skip-list. En el ejemplo siguiente, dicha variable se utiliza para excluir de la lista de sondeo las ranuras 3 y 8 del panel posterior.
ok setenv pci-slot-skip-list 3,8
Los valores de pci-slot-skip-list corresponden al esquema de numeración de 1 a-10 del panel posterior. Si la ranura 10 se incluye en esta lista, se excluirá del sondeo aunque la variable pci0-probe-list incluya el número de dispositivo 4 (que corresponde a la ranura 10 del panel posterior).
El intercalado de memoria de los sistemas Ultra 450 está controlado por la variable NVRAM memory-interleave. La tabla siguiente contiene los distintos valores de la variable y el efecto que cada uno de ellos tiene en la configuración de la memoria. Para obtener más información sobre el intercalado y la configuración de la memoria, consulte "Acerca de la memoria" en la guía del propietario suministrada con el sistema Ultra 450.
Tabla 2-3 Valores de configuración para la variable memory-interleave
Valor |
Efecto en la configuración de la memoria |
---|---|
auto (predeterminado) |
Habilita el intercalado de cuádruple vía si los cuatro bancos de memoria contienen módulos DIMM de idéntica capacidad. Habilita el intercalado de doble vía si sólo se utilizan los bancos A y B y ambos contienen módulos DIMM de idéntica capacidad. Si no se da ninguno de estos casos, el intercalado queda deshabilitado. |
max-size | Es equivalente al valor auto para sistemas Ultra 450. |
max-interleave |
Habilita el máximo nivel posible de intercalado para una determinada configuración de memoria. Parte de la capacidad de memoria queda sin utilizar si hay instalados módulos DIMM de distintas capacidades, ya que en cada DIMM, utiliza una cantidad de memoria equivalente a la del DIMM de menor capacidad instalado. |
1 |
Deshabilita el intercalado; Utiliza toda la memoria disponible. |
2 |
Fuerza el intercalado de memoria de doble vía entre los bancos A y B. Parte de la memoria queda sin utilizar si hay instalados módulos DIMM de distintas capacidades. El DIMM de menor capacidad debe instalarse en el banco B. Si los bancos C y D están ocupados, permanecen sin utilizar. |
4 |
Fuerza el intercalado de cuádruple vía entre los cuatro bancos. Parte de la memoria queda sin utilizar si hay instalados módulos DIMM de distintas capacidades. El DIMM de menor capacidad debe instalarse en el banco D. |
El ejemplo siguiente muestra cómo configurar el sistema para el máximo intercalado de memoria.
ok setenv memory-interleave max-interleave
Las funciones de supervisión y control del entorno en los sistemas Ultra 450 residen en el sistema operativo y en el firmware de la OBP. Esto garantiza que la supervisión se mantiene operativa si el sistema se detiene o no puede arrancar. La forma en que la OBP supervisa y reacciona ante un exceso de temperatura se controla mediante la variable de NVRAM env-monitor. La tabla siguiente muestra los distintos valores de esta variable y el efecto que cada uno de ellos produce en el comportamiento de la OBP. Si precisa más información sobre las funciones de supervisión del entorno, consulte "Acerca de las características de fiabilidad, disponibilidad y mantenimiento" en la guía del propietario que acompaña al sistema Ultra 450.
Tabla 2-4 Valores de configuración de la variable env-monitor
Valor |
¿Monitor activo? |
Acción que emprende |
---|---|---|
enabled (predeterminado) |
Sí |
Como respuesta a un exceso de temperatura o un fallo del grupo de ventiladores de la CPU o de la bandeja de ventiladores de disco, la OBP emite una advertencia y apaga el sistema después de 30 segundos. |
advise |
Sí |
La OBP sólo emite una advertencia, pero no apaga el sistema. |
disabled |
No |
La OBP no emprende ninguna acción; La supervisión del entorno queda desactivada en el nivel de la OBP. |
En el ejemplo siguiente, la variable env-monitor se utiliza para deshabilitar la supervisión del entorno en el nivel de la OBP.
ok setenv env-monitor disabled
Esta variable NVRAM no afecta a las funciones de supervisión y control del entorno mientras se ejecuta el sistema operativo.
La recuperación automática del sistema o ASR (acrónimo de Automatic System Recovery) permite al sistema Ultra 450 reanudar el funcionamiento después de experimentar determinados fallos de hardware. Las funciones Power-on self-test (POST) y OpenBoot diagnostics (OBDiag) pueden detectar automáticamente los componentes de hardware que han fallado, y una función de configuración automática diseñada en el firmware de OBP permite al sistema desconfigurar dichos componentes y restaurar el funcionamiento del sistema. En tanto el sistema sea capaz de funcionar sin el componente desactivado, las funciones de ASR harán que el sistema rearranque automáticamente sin la intervención del operador. Este "arranque degradado" permite al sistema seguir funcionando mientras se efectúa una llamada al servicio técnico para sustituir la pieza defectuosa.
Si se detecta el fallo de un componente durante la secuencia de encendido, éste se desconfigura y, si el sistema es capaz de funcionar sin él, la secuencia de arranque continúa. En un sistema en ejecución, determinados tipos de fallos (como el de un procesador) pueden provocar la restauración automática del sistema. Si esto ocurre, las funciones de ASR permiten el rearranque inmediato, siempre que el sistema pueda funcionar sin el componente que ha fallado. Esto impide que una pieza de hardware mantenga todo el sistema inactivo o vuelva a provocar su detención.
Para poder efectuar el arranque degradado, la OBP utiliza la norma IEEE 1275 Client Interface (a través del árbol de dispositivos) para "marcar" los dispositivos como fallido o desactivado mediante la creación de una propiedad de "estado" adecuada en el nodo correspondiente del árbol de dispositivos. Por convención, UNIX no activará ningún controlador para cualquier subsistema marcado de esta manera.
Así, siempre que el componente defectuoso esté inactivo en términos de electricidad (es decir, no pueda causar errores aleatorios de bus, ruido, etc.), el sistema podrá rearrancar automáticamente y reanudar el funcionamiento mientras acude el servicio técnico para sustituir la pieza.
En dos casos especiales de desconfiguración de un subsistema (CPU y memoria), la OBP hace algo más que crear una propiedad de "estado" en el árbol de dispositivos. Inmediatamente después de la restauración del sistema, la OBP debe inicializar y configurar (o ignorar) estas funciones para que el resto del sistema pueda funcionar correctamente. Estas acciones se emprenden en función del estado de dos variables de configuración NVRAM, post-status y asr-status, que contienen la información suministrada por la función POST o especificada manualmente por el usuario (consulte "Valores de ASR definidos por el usuario").
Si el valor de POST indica que una CPU ha fallado, o si un usuario decide deshabilitarla, la OBP activa su bit Master Disable que, básicamente, desactiva la CPU como dispositivo UPA hasta la siguiente vez que se enciende el sistema.
La detección y aislamiento de los problemas de memoria del sistema es una de las labores de diagnóstico más complejas. El problema se complica aún más por los distintos modos de intercalado de memoria que puede emplear el sistema, así como por la posibilidad de utilizar módulos DIMM de memoria dispares dentro del mismo banco.
Una vez que se ha detectado el fallo en un componente de memoria, el firmware desconfigura el banco de memoria asociado al error. Según esta norma, la configuración degradada puede provocar también el uso de un factor de intercalado inferior, una utilización inferior al 100 por cien en los bancos restantes, o ambas cosas, según el factor de intercalado.
Aunque, en la mayoría de los casos, los valores predeterminados configuran o desconfiguran adecuadamente los sistemas Ultra 450, resulta útil proporcionar a los usuarios avanzados la posibilidad de establecer manualmente valores que anulen los valores predeterminados. Por la naturaleza de la desconfiguración básica frente a la desconfiguración avanzada, es preciso proporcionar dos mecanismos de anulación distintos pero relacionados.
Para cualquier subsistema representado por un determinado nodo del árbol de dispositivos, los usuarios pueden desactivar esa función mediante la variable NVRAM asr-disable-list, que es simplemente un lista de rutas del árbol de dispositivos separadas por espacios.
ok setenv asr-disable-list /pci/ebus/ecpp /pci@1f,4000/scsi@3
La OBP del Ultra 450 utilizará esta información para crear la propiedad de estado disabled en todos los nodos incluidos en la variable asr-disable-list.
Para anular los valores de subsistemas que precisan desconfiguración avanzada (CPU y memoria), se utilizan los comandos de OBP asr-enable y asr-disable a fin de activar o desactivar cada subsistema de forma selectiva.
Existen duplicaciones en los valores de usuario para la desconfiguración por básica y avanzada. Siempre que sea posible, es preferible utilizar los comandos asr-enable y asr-disable de la desconfiguración avanzada.
Para poder llevar el control de los estados establecidos por los valores definidos manualmente, se ha incorporado un nuevo comando de usuario, .asr, que permite ver el resumen de valores en uso.
ok asr-disable cpu1 bank3 ok .asr CPU0: Enabled CPU1: Disabled CPU2: Enabled CPU3: Enabled SC-Marvin: Enabled Psycho@1f: Enabled Psycho@4: Enabled Psycho@6: Enabled Cheerio: Enabled SCSI: Enabled Mem Bank0: Enabled Mem Bank1: Enabled Mem Bank2: Enabled Mem Bank3: Disabled PROM: Enabled NVRAM: Enabled TTY: Enabled Audio: Enabled SuperIO: Enabled PCI Slots: Enabled
OpenBoot proporciona la variable binaria controlada por NVRAM y denominada auto-boot? que determina si OBP arrancará automáticamente el sistema operativo después de cada restauración. El valor predeterminado para las plataformas SUN es true.
Si un sistema detecta un fallo durante el diagnóstico de encendido, no se tiene en cuenta la variable auto-boot? y el sistema no arranca a menos que el usuario lo haga manualmente. Obviamente, este comportamiento no es el adecuado para un caso de arranque degradado, por lo que la OBP del sistema Ultra 450 proporciona una segunda variable binaria controlada por NVRAM que se denomina auto-boot-on-error?. Esta conmutación controla si el sistema intentará efectuar un arranque degradado cuando se detecte el fallo de un subsistema. Tanto auto-boot? como auto-boot-on-error? deben tener el valor true para poder habilitar el arranque degradado.
ok setenv auto-boot-on-error? true
El valor predeterminado de auto-boot-on-error? es false. Por este motivo, el sistema no intentará realizar un arranque degradado a menos que el usuario lo cambie por true. Igualmente, el sistema no tratará de efectuar un arranque degradado como respuesta a un error grave sin solución, aunque dicho arranque esté habilitado. Un ejemplo de error grave es cuando todas las CPU del sistema están desactivadas por un fallo detectado por POST o como resultado de los valores definidos manualmente por el usuario.
El protocolo estándar de restauración del sistema no tiene en cuenta el diagnóstico del firmware a menos que la variable NVRAM diag-switch? esté definida como true. El valor predeterminado de esta variable es false.
Para poder utilizar la ASR en los sistemas Ultra 450, conviene poder ejecutar el diagnóstico del firmware (POST/OBDiag) en algunos o todos los casos de restauración. En lugar de cambiar simplemente el valor predeterminado de diag-switch? por true, que conlleva otros efectos (consultar el OpenBoot 3.x Command Reference Manual), la OBP del Ultra 450 proporciona una nueva variable NVRAM denominada diag-trigger, que permite determinar qué casos de restauración, si los hay, activarán automáticamente las funciones POST/OBDiag. La variable diag-trigger y sus distintos valores se explican en la tabla siguiente.
diag-trigger no tiene ningún efecto a menos que diag-switch? esté definida como true.
Valor |
Función |
---|---|
power-reset (predeterminado) |
Ejecuta el diagnóstico sólo en restauraciones de encendido. |
error-reset | Ejecuta el diagnóstico sólo en restauraciones por encendido, errores graves de hardware y advertencias de error. |
soft-reset |
Ejecuta el diagnóstico en todas las restauraciones (excepto las de XIR), incluidas aquéllas provocadas por los comandos init 6 o reboot de UNIX. |
none |
Deshabilita la activación automática del diagnóstico por cualquier evento de restauración. Con todo, los usuarios pueden ejecutar el diagnóstico manualmente pulsando simultáneamente las teclas Stop y d al encender el sistema, o poniendo el botón del panel frontal en la posición de Diagnostics al encender el sistema. |
En el ejemplo siguiente, la variable diag-trigger se utiliza para activar las funciones de diagnóstico POST y OpenBoot en todas las restauraciones excepto las de XIR.
ok setenv diag-switch? true ok setenv diag-trigger soft-reset