La BIOS de Sistema La BIOS es una ROM que contiene el software directamente relacionado con la máquina y que permitirá: 1. Que la máquina arranque y se ponga en un estado operativo 2. Dar soporte a cualquier aplicación interesada en interactuar con el hardware de una forma lo suficientemente alejada de la plataforma como para no depender de ella. Al software que realiza la primera función se le denomina POST (Power On Self Test) Su función es: - Chequear la presencia/ausencia de dispositivos en el sistema - Inicializarlos - Comprobar el correcto funcionamiento del hardware - Informar sobre el estado del sistema - Cargar el sistema operativo Al software que realiza la segunda función se le denomina genéricamente System Bios. Consiste en un conjunto de rutinas invocables a través de interrupciones software habitualmente (modo Real). Es posible acceder a ellas en cualquier momento tras el arranque (aunque también son utilizadas por el software POST) por cualquier aplicación. POST. Es invocado tras un reset. El procesador, automáticamente comienza a ejecutar en la dirección FFFF0h(FFFFFFF0) en modo real (compatible ISA). Allí encontrará un salto lejano al comienzo de las rutina POST. Estas rutinas comienzan, dispositivo por dispositivo, a comprobar e inicializar cada uno. Primero los elementos críticos, el primero de los cuales es la propia BIOS de la cual realizará una comprobación (chequeo de errores) System BIOS Checksum. Cualquier error en este momento puede significar la detención del sistema. La forma de informar sobre lo ocurrido es mediante señales audibles, secuencias de pitidos codificados acorde al error detectado. A continuación inicializa el monitor del sistema. Y por último el resto de dispositivos menos críticos. Toda la información relativa a estas comprobaciones aparecerá en pantalla. (pag 1174) BIOS y memoria. Una de las primeras tareas que realiza es la comprobación de los primeros 64k de memoria. Allí localizará espacio para una pila que permita al software POST ejecutarse. Además depositará información sobre el sistema, y la tabla de interrupciones. La memoria se va a organizar en tres partes: Memoria convencional: los primeros 640 k: mínimo exigido por cualquier sistema PC, para comenzar a arrancar. Es donde cargará el vector de interrupciones: 00..400h, la pila: SS=30h, sp=100h (256bytes) – en realidad se solapa con el final del vector de interrupciones, limitando el número de entradas a la tabla de interrupciones a 192 - y la información de sistema: 400h..4FFh. Memoria Oculta (Shadow): Hasta el primer Megabyte. La propia Rom BIOS y está mapeada en este espacio, también se mapean en estas direcciones las BIOS de Video y otras ROM (Rom Bios de expansión) suministradas por los dispositivos que aportan nuevas funcionalidades a la BIOS o bien sustituyen algunas de la que ya tiene. Al realizarse este mapeo, las localizaciones físicas de la Ram quedan inaccesibles, las rom les hacen sombra. El software localizado en las ROM puede trasladarse a la memoria de manera que el acceso sea más rápido y por lo tanto la ejecución más eficiente. Esto se recomienda habitualmente para la ROM BIOS y para la ROM de Video. En los demás casos surgen peculiaridades que hacen que cada caso deba ser estudiado por separado. Memoria Extendida: A partir del primer Mega. En el modo Real no es posible acceder a esta memoria. Se ha de pasar al modo protegido y por lo tanto será ya el Sistema Operativo el que la chequeará y gestionará. ROM BIOS de expansión. Si durante la fase de inicialización se detecta un dispositivo con ROM de expansión, se comienza a explorar la zona de memoria oculta, a partir de la dirección C8000h. Se busca una cabecera determinada que identifica la existencia de software de configuración (pg 1178). Una vez detectada se comprueba que está libre de errores y a continuación salta al software de inicialización que se encarga de inicializar el dispositivo particular con el que corresponda. La última acción de POST es invocar al sistema operativo. Para ello existen dos interrupciones de BIOS INT19h, que explora los dispositivos de almacenamiento, disquetera, discos duros, cd, etc. Si no encuentra un SO que arrancar puede invocar también a INT18h que trata de realizar el arranque desde red si existen los medios para ello. Plug and Play y BIOS Plug and Play es la característica que permite a los dispositivos del sistema ser configurados sin la intervención del usuario. Los dispositivos Plug & Play conviven con dispositivos ISA compatibles que no poseen esta característica sino que por el contrario sus requerimientos de recursos son rígidos. Por ello todo sistema compatible mantiene un conjunto de recursos reservados permanentemente (líneas y vectores de interrupción, direcciones de puerto y memoria). El resto debe ser gestionado de una forma coherente para que al ser asignado a los dispositivos autoconfigurables no se generen conflictos, ni entre los propios dispositivos P&P ni entre estos y los dispositivos ISA. Para contemplar la configuración de los dispositivos P&P, entre los que se encuentran los dispositivos PCI, POST se amplia con un conjunto de rutinas que van a intervenir el el proceso de comprobación y arranque del sistema. Rutinas que intervienen en el proceso de arranque POST: pag 28 Global Device Class Configuration Manager Es responsable de comprobar e inicializar todos los dispositivos P&P. Para ello invoca a cada manejador de clases de dispositivos P&P. En concreto uno de los manejadores de clases será el PCI Configuration Manager PCI Configuration Manager Es responsable de inicializar únicamente los dispositivos PCI. Sus labores son: Identificación de dispositivos Identificación de funciones Detección de los recursos solicitados por la funciones Asignación de recursos a las funciones (debe ayudarse del System Resources Manager) Y para cada función específica puede requerir invocar a un software especifico de la función : PCI devices initialization functions PCI Initialization Functions Software específico de inicialización para clases de dispositivos o funciones. System Resource Map Es una base de datos, gestionada por el System Resources Manager, que contiene el conjunto de recursos del sistema (Direcciones de memoria, Entrada/Salida, Interrupciones) y sus asignaciones a dispositivos System Resources Manager Gestiona el Resource Map. Realiza, bajo peticiones, la tarea de localizar recursos manteniendo la coherencia del sistema. Operating System Device Class Configuration Manager Responsible de la fase dinámica de P&P. Detecta la inserción o extracción de dispositivos P&P y reorganiza el sistema para asignarle recursos o liberar los recursos asignados. Hace uso del Mapa de Recursos, invoca a las PCI Initialization Functions y también se encarga de invocar a los Device Drivers PCI Device Drivers. Proporciona al software de aplicación una interfaz común frente a los dispostivos (dispositivos de la misma clase pueden ofrecer las mismas funcionalidades pero con diferentes requerimientos de invocación y configuración. Los drivers deben ofrecer una interfaz común frente a toda esta variedad.) Bibliografía usada: PCI & PCI-X Hardware and Software 5ª Ed 2001 Edwar Solari/George Willse AnnaBooks EEUU