PCI y BIOS

Anuncio
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
Descargar