stringtranslate.com

Extensiones de BIOS VESA

VESA BIOS Extensions ( VBE ) es un estándar VESA , actualmente en la versión 3, que define la interfaz que puede utilizar el software para acceder a placas de vídeo compatibles con resoluciones y profundidades de bits altas. Esto se opone a las llamadas BIOS INT 10h "tradicionales" , que están limitadas a resoluciones de 640×480 píxeles con una profundidad de 16 colores (4 bits) o menos. VBE está disponible a través del BIOS de la tarjeta de vídeo , que instala algunos vectores de interrupción que apuntan a sí mismo durante el arranque .

La mayoría de las tarjetas más nuevas implementan el estándar VBE 3.0, que es más potente. Las versiones anteriores de VBE solo proporcionan una interfaz de modo real , que no se puede usar sin una pérdida de rendimiento significativa desde los sistemas operativos en modo protegido . En consecuencia, el estándar VBE casi nunca se ha utilizado para escribir los controladores de una tarjeta de video; por lo tanto, cada proveedor ha tenido que inventar un protocolo propietario para comunicarse con su propia tarjeta de video. A pesar de esto, es común que un controlador se conecte a la interrupción del modo real para inicializar los modos de pantalla y obtener acceso directo al búfer de cuadros lineal de una tarjeta , porque de lo contrario, estas tareas requerirían el manejo de cientos de variaciones propietarias que existen de una tarjeta a otra.

En los sistemas EFI 1.x, el INT 10H y las extensiones VESA BIOS (VBE) se sustituyen por el protocolo EFI UGA. En los sistemas UEFI 2.x, ampliamente utilizados, el INT 10H y el VBE se sustituyen por el UEFI GOP . [1] [2]

Normas

VBE temprano

VBE 1.0 (VS891001) se definió en 1989. [3] VBE 1.1 (VS900602) se definió en 1990. VBE 1.2 (VS911022) se definió en 1991. [4] Estas versiones de VBE requieren el modo real para funcionar.

VBE define varias funciones nuevas a las que se llama mediante INT 10H . La numeración de funciones comienza con AX=4F00, o (AH=4F, AL=00), para la función 00h . 00h a 05h se definieron en VBE 1.0, 06h y 07h en 1.1, y 08h en 1.2.

Extensiones de BIOS VESA (núcleo VBE) 2.0 (noviembre de 1994)

Este estándar proporciona la funcionalidad principal de las extensiones VESA BIOS. Permite que las aplicaciones determinen las capacidades de la tarjeta gráfica y brinda la posibilidad de configurar los modos de visualización que se encuentran. VBE 2.0 agrega algunas características nuevas por encima del estándar VBE 1.2 anterior, incluido el acceso al búfer de cuadros lineal y el modo de banca protegido . Algunas de las características de VBE Core 2.0 [5] incluyen:

Acceso al framebuffer lineal
Permite el acceso directo al framebuffer en modo protegido como un área grande de memoria en lugar de fragmentos más pequeños menos eficientes.
Banca en modo protegido
Permite el acceso al framebuffer desde el modo protegido sin pasar al modo real . Esto se implementa mediante una nueva función 0Ah .
Cambio de página Super VGA
Permite una animación de mayor rendimiento para proporcionar una animación fluida para juegos de computadora y otros programas de gráficos de alto rendimiento.
Pantallas virtuales Super VGA
Permite que el software configure resoluciones de pantalla virtuales más grandes que la resolución real mostrada y que se desplace o panore suavemente por la imagen más grande.
Modos High Color y TrueColor
Modos gráficos de 16 y 24 bits estándar de la industria para resoluciones desde 320×200 hasta1600 ×1200 .

Extensiones de BIOS VESA (núcleo VBE) 3.0 (septiembre de 1998)

Un superconjunto del estándar VBE 2.0. Este estándar añade control de frecuencia de actualización , funciones para gafas estéreo , almacenamiento en búfer múltiple mejorado y otras funciones al estándar VBE 2.0.

Triple buffering
Permite que las aplicaciones de alta velocidad realicen almacenamiento en búfer múltiple con menos parpadeo de pantalla y sin tener que esperar al controlador de gráficos.
Control de frecuencia de actualización mediante tiempos GTF
Esto permite que las aplicaciones y las utilidades del sistema operativo cambien la frecuencia de actualización de forma estándar en todos los controladores gráficos VBE 3.0. Es importante para las aplicaciones estéreo, ya que cuando se habilita el estéreo, la frecuencia de actualización efectiva del usuario se reduce a la mitad.
Cambio de página en estéreo
Al visualizar una aplicación con gafas estereoscópicas , el software necesita pasar las páginas el doble de veces de lo normal, ya que necesita generar imágenes independientes para cada ojo. Esta nueva función permite que el software compatible con estéreo se muestre correctamente.
Sincronización estéreo por hardware
Permite que el software estéreo determine si hay un conector para gafas estéreo en la tarjeta gráfica del usuario.

Se agregó un nuevo "Punto de entrada en modo protegido" como alternativa a la función 0Ah .

Funciones VBE/acelerador (VBE/AF) (agosto de 1996)

VBE/AF proporciona una interfaz estándar de bajo nivel para las funciones de aceleración comunes disponibles en la mayoría del hardware. Algunas de las funciones definidas en el estándar son el acceso a cursores de hardware, transferencias de bloques de bits (Bit Blt), sprites fuera de pantalla , desplazamiento horizontal por hardware, dibujo y otras funciones. Está definido para funcionar en modo protegido de 32 bits. A pesar de la adopción generalizada de VBE Core, muy pocos dispositivos admiten VBE/AF. El proyecto FreeBE/AF implementa controladores VBE/AF de terceros gratuitos para ciertas tarjetas gráficas.

Especificaciones suplementarias

Las especificaciones complementarias proporcionan una interfaz independiente del dispositivo entre el software de la aplicación y el hardware Super VGA. Los números de función los asigna el Comité de estándares de software de VESA (SSC).

Extensiones de administración de energía (PM)

DPMS es un estándar de hardware que permite que las tarjetas gráficas se comuniquen con monitores compatibles con DPMS a través de un sistema de señalización especial que se puede utilizar con los controladores gráficos y cables de monitor existentes. Este sistema de señalización permite que la tarjeta gráfica le indique al monitor que entre en una serie de estados de ahorro o administración de energía diferentes, lo que permite que el monitor se apague automáticamente cuando no está en uso.

Extensiones de interfaz de panel plano (FP)

Permite el acceso a funciones especiales en controladores de panel plano.

Extensiones de interfaz de audio (AI)

Proporciona estándar para servicios de audio.

Actualmente (versión 1.00), la especificación VBE/AI define tres clases de dispositivos: WAVE, MIDI y VOLUME. Tipos de dispositivos que no están contemplados:

Control de CD-ROM
que está cubierto por las Extensiones de CD-ROM de Microsoft .
Procesadores de efectos
Esta clase de dispositivo se ampliará en futuras versiones de la especificación VBE/AI.

Extensiones OEM

Proporciona entrada estándar a extensiones específicas del proveedor.

Canal de datos de visualización (DDC)

El canal de datos de pantalla o DDC es una conexión digital entre la pantalla de una computadora y un adaptador gráfico que permite que la pantalla comunique sus especificaciones al adaptador. El estándar fue creado por VESA .

Interfaz de control en serie (SCI)

Proporciona medios independientes del hardware para que el sistema operativo y la aplicación lean y escriban datos a través de la interfaz de control serial I²C .

Números de modo VBE

Aunque el número de modo es un valor de 16 bits, los números de modo VBE opcionales tienen 14 bits de ancho. El bit 15 es utilizado por el BIOS VGA como un indicador para borrar o preservar la memoria de la pantalla. Los números de modo definidos por VBE son los siguientes:

A partir de VBE/Core 2.0, VESA ya no define nuevos números de modo VESA y ya no requiere que un dispositivo implemente los números antiguos. Para detectar correctamente la información de un modo de pantalla, utilice la Función 01h - Devolver información de modo VBE .

El modo 81FFh es un modo de video especial diseñado para preservar el contenido de la memoria actual y brindar acceso a toda la memoria de video.

Modos definidos por VESA

A partir del estándar VBE 2.0, VESA no definirá nuevos modos y los modos antiguos ya no son obligatorios. El uso de modos definidos debe considerarse obsoleto: las tarjetas de video modernas pueden o no usar estos números de modo (aunque la mayoría lo hace por compatibilidad con versiones anteriores), y el software moderno no debería usarlos. La forma correcta para que el software descubra los modos de visualización disponibles es obtener una lista de modos (usando "Función 00h: Devolver información del controlador VBE") y luego verificar cada modo (usando "Función 01h: Devolver información del modo VBE") hasta que encuentre el modo o los modos que necesita. [ cita requerida ]

Los modos 264–268 son modos de texto. 264 (0108h) tiene 80 columnas × 60 filas (80×60), 265 (0109h) tiene 132×25, 266 (010Ah) tiene 132×43, 267 (010Bh) tiene 132×50 y 268 (010Ch) tiene 132×60.

Otros modos gráficos comúnmente disponibles

La siguiente tabla combina los modos definidos por VESA (los valores indicados en negro) junto con los modos comúnmente utilizados, pero que pueden no funcionar en todas las tarjetas gráficas, ya que no están definidos por ningún estándar ( indicados en rojo ).

Detección de modo

Se han escrito algunas herramientas para detectar los modos VBE disponibles en un sistema. Por lo general, funcionan invocando la función 01h , que es más confiable que asumir una tabla de modos extendidos como parte de la documentación propia del dispositivo.

Números del modo de vídeo de Linux

El núcleo Linux permite al usuario seleccionar el modo VESA en el momento del arranque pasando un código en la memoria al núcleo. El cargador de arranque LILO pasa este código basándose en un parámetro "vga" en su archivo de configuración. Tiene la forma 'vga=XXX', donde XXX es el valor decimal, o 'vga=0xHHH', donde HHH es el valor hexadecimal. Sin embargo, el parámetro 'vga=' del cargador de arranque no acepta directamente los números del modo de vídeo VESA; en su lugar, el número del modo de vídeo de Linux es el número VESA más 512 (en el caso de la representación decimal) o más 0x200 (en el caso de la representación hexadecimal). Por ejemplo, el valor VESA definido de 257 (0x101), que representa 640x480 y 256 colores, tiene un valor de modo de vídeo Linux equivalente de 769 (0x301). [12]

Como se indicó anteriormente, el estándar VESA define un conjunto limitado de modos; en particular, ninguno por encima de1280 ×Los valores 1024 están cubiertos y, en cambio, su implementación es completamente opcional para los fabricantes de adaptadores gráficos. Como los proveedores tienen la libertad de utilizar los valores adicionales que deseen, esto significa que, en la tabla siguiente, los modos indicados en rojo (y expresados ​​en forma decimal) pueden no ser aplicables a todos los adaptadores gráficos .

1: 32 bits es en realidad (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, equivale a un color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para acceder más rápido a la memoria de vídeo mediante la alineación de la memoria de 32 bits.

VGA= 864 [ 352 (0160h)] también parece seleccionar1280 × 800 (8 bits) para pantallas de varios portátiles.
VGA = 834 [ 322 (0142h)] es1400 ×1050

Modos disponibles en Parallels

La emulación de BIOS VESA en la máquina virtual Parallels tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación 3214, LRMI vbetest revela estos modos:

Modos disponibles en VirtualBox

La emulación del BIOS VESA en la máquina virtual VirtualBox tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación r153438 de 6.1.38_Ubuntu, la función AX=0x4F01 del BIOS VESA revela estos modos (consulte también VBETables-gen.c):

Véase también

Referencias

  1. ^ "¿Qué es efifb? — La documentación del kernel de Linux". kernel.org . Consultado el 24 de noviembre de 2020 .
  2. ^ "¿Qué es vesafb? — La documentación del kernel de Linux". kernel.org . Consultado el 24 de noviembre de 2020 .
  3. ^ "SUPER VGA BIOS EXTENSION Standard # VS891001 › Gemixtes". 11 de diciembre de 2013. Archivado desde el original el 11 de diciembre de 2013. Consultado el 27 de diciembre de 2022 .
  4. ^ "VBE versión 1.2". 22 de octubre de 1991. Archivado desde el original el 14 de enero de 2009. Consultado el 27 de diciembre de 2022 .
  5. ^ "Estándar VBE/Core 2.0". 11 de diciembre de 2008. Archivado desde el original el 11 de diciembre de 2008. Consultado el 27 de diciembre de 2022 .
  6. ^ abc Modos disponibles a través de la llamada tradicional al BIOS de 10 h
  7. ^ 352 (0160h) también parece seleccionar1280 × 800 (8 bits) para pantallas de varias computadoras portátiles
  8. ^ 32 bits es en realidad (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, es igual a un color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para acceder más rápido a la memoria de vídeo a través de la alineación de memoria de 32 bits .
  9. ^ 322 (0142h) es 1400×1050
  10. ^ Código fuente de hwinfo en GitHub
  11. ^ "mdt". GitHub .
  12. ^ Consulte la documentación del kernel en Documentation/svga.txt y Documentation/fb/vesafb.txt.

Lectura adicional

Enlaces externos