

El bus Low Pin Count ( LPC ) es un bus de computadora utilizado en computadoras personales compatibles con IBM para conectar dispositivos de bajo ancho de banda a la CPU , como la ROM del BIOS (la ROM del BIOS se trasladó al bus de interfaz periférica serial (SPI) en 2006 [ 1 ] ), dispositivos de E/S "heredados" (integrados en Super I/O , controlador embebido , CPLD y/o chip IPMI ) y Trusted Platform Module (TPM). [ 2 ] Los dispositivos de E/S "heredados" generalmente incluyen puertos seriales y paralelos , teclado PS/2 , ratón PS/2 y controlador de disquete .
La mayoría de las placas base de PC con bus LPC cuentan con un controlador de plataforma (PCH) o un chip puente sur , que actúa como host y controla el bus LPC. Todos los demás dispositivos conectados a los cables físicos del bus LPC son periféricos.
Descripción general

El bus LPC fue presentado por Intel en 1998 como un sustituto compatible con software para el bus de Arquitectura Estándar Industrial (ISA). A nivel de software, se asemeja a ISA, aunque físicamente es bastante diferente. El bus ISA tiene un bus de datos de 16 bits y un bus de direcciones de 24 bits que se puede usar tanto para direcciones de puertos de E/S de 16 bits como para direcciones de memoria de 24 bits; ambos funcionan a velocidades de hasta 8,33 MHz . El bus LPC utiliza un bus de cuatro bits de ancho altamente multiplexado que opera a cuatro veces la velocidad de reloj (33,3 MHz) para transferir direcciones y datos con un rendimiento similar.
La principal ventaja de LPC es que el bus básico requiere solo siete señales, lo que reduce considerablemente la cantidad de pines necesarios en los chips periféricos. Un circuito integrado que utilice LPC necesitará entre 30 y 72 pines menos que su equivalente ISA. Esto también facilita el enrutamiento del bus en las placas base modernas congestionadas. La frecuencia de reloj se eligió para que coincidiera con la de PCI con el fin de facilitar aún más la integración. Además, LPC está diseñado para ser un bus exclusivo de la placa base; no existe un conector estandarizado de uso común, aunque Intel define uno para su uso en módulos de depuración. [ 3 ] Hay disponible un pequeño número de tarjetas hija periféricas LPC , con asignaciones de pines propietarias del fabricante de la placa base: Trusted Platform Modules (TPM), [ 2 ] tarjetas POST para mostrar códigos de diagnóstico del BIOS, [ 4 ] y periféricos de puerto serie compatibles con ISA para uso industrial. [ 5 ] No se admite la detección de dispositivos; Dado que solo se conectan dispositivos de la placa base o modelos específicos de TPM, la imagen del firmware del host (BIOS, UEFI ) incluirá una descripción estática de cualquier dispositivo y sus direcciones de E/S que se espera que estén presentes en una placa base en particular.
Señales
Las señales de control LPC son activas en bajo , como lo indica el símbolo "#" en sus nombres. Las señales se dividen en tres categorías:
- Unidireccionales. Se alimentan desde una única fuente en todo momento.
- Colector abierto . Se trata de señales de baja velocidad que el host eleva (al estado inactivo) cuando no están en uso, y que cualquier dispositivo puede bajar.
- Bidireccional. Estas señales de alta velocidad se mantienen en estado alto durante un ciclo cada vez que un dispositivo termina de usarlas, tras lo cual unas resistencias pull-up débiles las mantienen en estado alto hasta que otro dispositivo comienza a usarlas.
La especificación LPC define siete señales obligatorias necesarias para la transferencia bidireccional de datos:
- LCLK (unidireccional, desde el host): reloj de 33,3 MHz. Puede conectarse al reloj PCI convencional (PCICLK), sin necesidad de un pin dedicado en el host (puente sur). Al igual que en PCI, otras señales se activan tras el flanco descendente de LCLK y se reciben tras el flanco ascendente.
- LRESET# (colector abierto): Reinicio de bus activo bajo. Puede estar conectado a PCIRST#.
- LFRAME# (unidireccional, desde el host): Esta señal activa en bajo indica el inicio de una transacción en el bus LPC. Solo el host puede iniciar transacciones en el bus.
- LAD[3:0] (bidireccional): Estas cuatro señales bidireccionales transportan información de dirección, datos y otra información multiplexada.
Se definen seis señales adicionales, que son opcionales para los dispositivos LPC que no requieren su funcionalidad, pero la compatibilidad con las dos primeras es obligatoria para el host:
- LDRQ# (unidireccional, desde el dispositivo): Solicitud de DMA/controlador de bus. Esta es una señal de salida de un dispositivo que desea realizar acceso directo a memoria, ya sea mediante el controlador DMA compatible con Intel 8237 o el protocolo de controlador de bus específico de LPC. El host debe proporcionar un pin de entrada correspondiente por cada dispositivo que lo necesite (mínimo dos).
- SERIRQ (bidireccional): Señal de interrupción serializada compatible con Intel 8259. [ 6 ] Una línea es compartida por todos los dispositivos LPC y el host. Al igual que las líneas LAD, esta tiene una resistencia de polarización débil que la mantendrá en alto si ningún dispositivo la está controlando.
- CLKRUN# (colector abierto): Señal utilizada para reiniciar el reloj en sistemas que pueden detenerlo para la administración de energía. No es necesaria si el host no detiene el reloj. Puede estar conectada a la señal PCI equivalente.
- LPME# (colector abierto): Evento de administración de energía para reactivar el sistema desde un estado de suspensión. Equivalente a la señal PME# del bus PCI.
- LSMI# (recolector abierto): Solicitud de interrupción de gestión del sistema . Esto solo es necesario si un dispositivo LPC necesita activar una SMI# en respuesta a un acceso al bus (por ejemplo, para realizar la emulación por software de un periférico de hardware faltante). De lo contrario, se puede utilizar el protocolo SERIRQ, más lento, para solicitar una SMI.
- LPCPD# (unidireccional, desde el host): Salida opcional del host para advertir al dispositivo LPC que se va a cortar la alimentación y que no debe realizar ninguna interrupción ni solicitud DMA.
Sincronización y rendimiento
El bus LPC deriva sus convenciones eléctricas de las del PCI convencional . En particular, comparte la restricción de que se requieren dos ciclos de inactividad para "invertir" cualquier señal del bus y permitir que otro dispositivo "transmita". En el primero, el bus se activa activamente a nivel alto. En el segundo, el bus se desactiva y se mantiene a nivel alto mediante las resistencias pull-up. Un nuevo dispositivo puede comenzar a enviar datos a través del bus en el tercer ciclo. Las operaciones LPC dedican una gran parte de su tiempo a realizar estas inversiones.
Como se mencionó, el bus LPC está diseñado para tener un rendimiento similar al del bus ISA. Las tasas exactas de transferencia de datos dependen del tipo de acceso al bus (E/S, memoria, DMA , firmware ) realizado y de la velocidad del host y del dispositivo LPC. Todos los ciclos del bus dedican la mayor parte de su tiempo a la sobrecarga en lugar de a la transferencia de datos, excepto los ciclos de lectura de firmware de 16 y 128 bytes, que tienen 17 ciclos de sobrecarga pero 32 y 256 ciclos (respectivamente) de transferencia de datos, logrando rendimientos de10.88 y15,63 MB/s . [ 7 ] El siguiente ciclo de bus más rápido definido en el estándar, el ciclo de escritura DMA de estilo ISA de 32 bits, emplea solo 8 de los 20 ciclos de reloj totales en la transferencia de datos (los otros 12 ciclos son de sobrecarga), alcanzando hasta 6,67 MB/s. [ 7 ]
Uno de los ciclos de bus más lentos es una simple lectura o escritura de memoria, donde solo 2 de los 17 ciclos de reloj (más cualquier estado de espera impuesto por el dispositivo) transfieren datos, para una velocidad de transferencia de 1,96 MB/s.
Estructura de la transacción
Las transacciones LPC comienzan con una transición de LFRAME# de bajo a alto. Mientras LFRAME# está en bajo, el host coloca un código de inicio de 4 bits en las líneas LAD. El código enviado en el último ciclo antes de que LFRAME# pase a alto define la siguiente transacción de bus.
Normalmente, el host mantiene LFRAME# en nivel bajo durante un solo ciclo de reloj, por motivos de eficiencia. Una excepción es la transacción de cancelación, que puede comenzar incluso en medio de otra operación. El host mantiene LFRAME# en nivel bajo durante un mínimo de cuatro ciclos de reloj, durante los cuales cualquier dispositivo debe dejar de controlar el bus LAD. En el cuarto ciclo, el host eleva LAD a nivel alto (1111). Tras la transición de LFRAME# de alto a bajo, el bus se reinicia a un estado inactivo.
En casi todos los demás casos, las transacciones LPC utilizan la siguiente estructura general:
- Código de inicio
- Tipo de transacción y dirección del host
- Datos del host (si se trata de una escritura)
- Tiempo de cambio de autobús (2 ciclos)
- Sincronización desde el dispositivo (1 o más ciclos)
- Datos del dispositivo (si se trata de una lectura)
- Tiempo de cambio de autobús (2 ciclos)
Las transferencias DMA difieren un poco. § El DMA compatible con ISA puede tener múltiples fases de sincronización y datos. § El DMA maestro de bus tiene un cambio de sentido del bus inmediatamente después del código START y no tiene cambio de sentido final.
La fase SYNC permite al dispositivo insertar estados de espera en la transacción. Existen seis valores SYNC posibles, todos con paridad par ( peso de Hamming par ). Tres de ellos finalizan la fase SYNC, mientras que los otros tres hacen que el host espere otro nibble SYNC:
- 0000: Listo. El dispositivo está listo para proceder con la transacción. Para los ciclos DMA, esto también borra la señal de solicitud DMA (DREQ).
- 0011: (no utilizado)
- 0101: Breve espera. A continuación, otro ciclo de sincronización. Se permiten como máximo 8 ciclos de espera cortos.
- 0110: Espera prolongada. Similar a la espera corta, pero la espera puede ser prolongada (por ejemplo, operaciones de puerto paralelo mejorado ).
- 1001: Listo más. Un código exclusivo de DMA que indica "Listo" y el dispositivo solicita ciclos DMA adicionales (DREQ permanece activado).
- 1010: Error. El dispositivo está listo para continuar, pero se produjo un error grave (como un error de paridad) durante la transferencia. Esto equivale a las señales IOCHK# del bus ISA o SERR# del bus PCI. En el caso de una lectura, los datos se transmiten, pero es probable que estén dañados.
- 1100: (no utilizado)
- 1111: Dispositivo no presente. Si ningún dispositivo responde a la transacción, el host verá este código y podrá cancelarla. Para dar cabida a dispositivos lentos, se permiten hasta dos ciclos de este código antes de que se cancele la transacción.
Aplicaciones
Intel diseñó el bus LPC de manera que la imagen del BIOS del sistema pudiera almacenarse en un único chip de memoria flash conectado directamente al bus LPC. Intel también hizo posible colocar imágenes del sistema operativo y aplicaciones de software en un único chip de memoria flash conectado directamente al bus LPC, como alternativa a un puerto Parallel ATA . [ 8 ]
Un CPLD o FPGA puede implementar un host o periférico LPC. [ 9 ]
La consola de juegos Xbox original tiene un puerto de depuración LPC que se puede usar para forzar a la Xbox a arrancar código nuevo. [ 10 ] [ 11 ]
Funcionamiento compatible con ISA
Todas las transacciones del bus LPC compatibles con ISA utilizan el código de INICIO 0000. [ 7 ] Durante el primer ciclo con LFRAME# nuevamente en alto, el host controla un campo de "tipo/dirección de ciclo" (CTDIR): dos bits que indican el tipo (E/S, memoria o DMA) y un bit que indica la dirección (lectura desde el dispositivo o escritura en el dispositivo) de la transferencia que sigue. A esto le sigue el campo de dirección de transferencia, cuyo tamaño depende del tipo de ciclo:
- Para el acceso de E/S, la dirección es de 16 bits, transferidos comenzando por el nibble más significativo durante 4 ciclos.
- Para el acceso a la memoria del sistema, la dirección es de 32 bits, y se transfiere comenzando por el nibble más significativo durante 8 ciclos.
- Para los accesos DMA compatibles con ISA, no existe una dirección propiamente dicha , sino que en dos ciclos de reloj se transfiere un nibble que contiene el número de canal DMA y un segundo nibble que indica el tamaño de la transferencia. La dirección de memoria se programa en el controlador DMA de estilo ISA del chipset o de la CPU fuera del bus LPC. Véase la sección DMA compatible con ISA más adelante.
Lecturas y escrituras compatibles con ISA
Los accesos a memoria y E/S solo se permiten como accesos de un solo byte y funcionan como se describe en § Estructura de transacción :: dirección, datos del host si es escritura, cambio de sentido, SYNC, datos del dispositivo si es lectura.
Si el host intenta transferir datos a una dirección no utilizada, ningún dispositivo generará los ciclos SYNC y el host verá 1111 en el bus LAD. Tras observar tres ciclos de 1111 (se permiten dos ciclos, además de los dos ciclos de retorno, para que un dispositivo lento decodifique la dirección y comience a generar los patrones SYNC), el host abortará la operación.
DMA compatible con ISA
El chip Platform Controller Hub (PCH) o el chip southbridge actúa como host y controla el bus LPC. También actúa como controlador DMA central para los dispositivos en ese bus si el controlador de memoria está en el chipset. En las CPU que contienen sus propios controladores de memoria, el controlador DMA se encuentra en la CPU. Para garantizar la compatibilidad con el software originalmente escrito para sistemas con el bus ISA, el controlador DMA contiene los circuitos equivalentes de los periféricos integrados "heredados" de la arquitectura IBM PC/AT , como los dos controladores de interrupción programables , el temporizador de intervalo programable y dos controladores DMA ISA , que participan en el " DMA de estilo ISA ".
El DMA compatible con ISA utiliza un controlador DMA compatible con Intel 8237 en el host, que realiza un seguimiento de la ubicación y la longitud del búfer de memoria, así como de la dirección de la transferencia. El dispositivo simplemente solicita el servicio a un número de canal DMA determinado, y el host realiza un acceso DMA en el bus LPC.
La solicitud se realiza mediante una línea de solicitud DMA (DRQ) virtual compatible con ISA, que se emula utilizando la señal LDRQ# del dispositivo para indicar las transiciones en la línea DRQ emulada. Esto se realiza con solicitudes de 6 bits en la señal LDRQ#: un bit de inicio 0, el número de canal DMA de 3 bits (el bit más significativo primero), un bit de nuevo nivel de solicitud (casi siempre 1, lo que indica que se solicita una transferencia DMA) y un bit de parada final 1. El host responde realizando un ciclo DMA en la siguiente oportunidad disponible. Los ciclos DMA se nombran según la dirección de acceso a la memoria , por lo que una "lectura" es una transferencia al dispositivo LPC y una "escritura" es una transferencia desde el dispositivo LPC.
La "dirección" consta de 6 bits que se envían como dos nibbles: un número de canal de 3 bits y una indicación de conteo de terminal de 1 bit (el pin TC del bus ISA o la salida EOP# del 8237), seguidos de un tamaño de transferencia de 2 bits.
Por defecto, los canales DMA del 0 al 3 realizan transferencias de 8 bits, y los canales del 5 al 7, transferencias de 16 bits; sin embargo, una extensión específica de LPC permite transferencias de 1, 2 o 4 bytes en cualquier canal. Cuando se realiza una transferencia de varios bytes, cada byte tiene su propio campo SYNC, como se describe a continuación.
Un patrón SYNC "listo" normal de 0000 (o un patrón de error de 1010) también provoca la desactivación de la señal de solicitud DMA emulada correspondiente; el host detendrá el DMA después del byte siguiente hasta que el dispositivo realice otra solicitud DMA mediante la señal LDRQ#. Un patrón SYNC de 1001 indica que el host debe considerar que la solicitud DMA del dispositivo sigue activa; el host continuará con los bytes restantes de esta transferencia o iniciará otra, según corresponda, sin una solicitud separada mediante LDRQ#.
Para una escritura DMA, donde se transfieren datos desde el dispositivo, el campo SYNC va seguido de los 8 bits de datos y otro campo SYNC, hasta que se alcanza la longitud especificada por el host para esta transferencia o el dispositivo la detiene. Un campo de retorno de dos ciclos completa la transacción. Para una lectura DMA, donde se transfieren datos al dispositivo, el campo SYNC va seguido de un retorno, y la secuencia datos-retorno-sincronización-retorno se repite para cada byte transferido.
interrupciones serializadas
Las interrupciones se transmiten a través de una única línea SERIRQ compartida utilizando el protocolo "interrupciones serializadas para PCI", desarrollado originalmente para el bus PCI. [ 6 ] El host envía periódicamente paquetes de interrupción, dentro de los cuales a cada solicitud de interrupción se le asigna una ranura de tiempo de 1 reloj, separada por ciclos de respuesta de 2 relojes. La sincronización inicial la realiza el host. Como ejemplo simplificado:
- El host mantiene la línea SERIRQ en nivel bajo durante cuatro a ocho ciclos de reloj, seguido de un ciclo de inversión de 2 ciclos de reloj: SERIRQ se mantiene en nivel alto durante 1 ciclo de reloj y luego permanece en nivel alto durante el segundo ciclo de inversión.
- Si un dispositivo necesita solicitar IRQ#6, espera 6×3=18 ciclos de reloj, luego pone SERIRQ en bajo durante un ciclo y en alto durante otro.
Los dispositivos pueden reconocer el inicio de la trama porque solo el host mantendrá la línea en nivel bajo durante más de un ciclo. El host identifica la interrupción contando el número de ciclos de reloj: si detecta que la línea SERIRQ se pone en nivel bajo en el decimoctavo ciclo, entonces se activa la IRQ 18/3=6.
El número de ranuras de interrupción es específico del sistema, siendo 17 un número típico: 16 interrupciones compatibles con ISA (IRQ0 – IRQ15), más NMI .
Tras la última interrupción, el host añade una señal de "parada" que consiste en dos o tres ciclos bajos seguidos de dos ciclos de retorno.
En el modo continuo, el host inicia periódicamente un nuevo paquete. También existe un modo silencioso en el que un dispositivo solicita un nuevo paquete activando SERIRQ a nivel bajo durante un ciclo de reloj. El host continúa activando la línea a nivel bajo durante los siete ciclos restantes. A partir de este punto, el protocolo es el mismo.
El modo de funcionamiento se controla mediante la duración de la señal de parada del host al final de cada paquete. Si consta de tres pulsos de señal baja, se activa el modo continuo y solo el host puede iniciar un nuevo paquete. Si la señal de parada consta de dos pulsos de señal baja, se activa el modo silencioso y cualquier dispositivo puede iniciar un paquete de interrupción.
Transacciones no ISA de LPC
Los valores del campo START distintos de 0000 o 1111 se utilizan para indicar diversas transferencias no compatibles con ISA. [ 7 ] Las transferencias admitidas son:
INICIO = 1101, 1110: Lectura y escritura de la memoria del firmware
Esto permite que el firmware (BIOS) se ubique fuera del espacio de direcciones de periféricos habitual. Estas transferencias son similares a las transferencias compatibles con ISA, excepto que:
- No existe el campo CTDIR; la dirección está codificada en el campo START (1101 para lectura, 1110 para escritura).
- Los primeros cuatro bits de dirección se definen como un campo de selección de dispositivo (IDSEL) para permitir la selección de un concentrador de firmware entre varios. Por ejemplo, se puede usar un segundo concentrador de firmware para almacenar una BIOS de respaldo en caso de que la BIOS principal se corrompa por malware o una actualización de firmware defectuosa.
- Los 28 bits de dirección restantes definen la dirección dentro del dispositivo, comenzando por el nibble más significativo.
- La dirección va seguida de un campo de tamaño. Los tamaños de lectura/escritura admitidos son 1, 2 y 4 bytes. Para lectura únicamente se admiten tamaños de 16 y 128 bytes.
- Los datos se transfieren en una ráfaga continua, sin estados de espera. Solo hay un campo SYNC para toda la transferencia.
INICIO = 0010, 0011: DMA maestro de bus
Hasta dos dispositivos en un bus LPC pueden solicitar una transferencia de maestro de bus mediante la señal LDRQ# para solicitar el uso del canal DMA reservado 4. En este caso, el host iniciará una transferencia con un campo START especial de 0010 para el maestro de bus 0 o 0011 para el maestro de bus 1, seguido inmediatamente de dos ciclos de retorno para entregar el bus al dispositivo que solicita el ciclo DMA de maestro de bus. Tras los ciclos de retorno, la transferencia procede de forma muy similar a una transferencia compatible con ISA iniciada por el host, con los roles invertidos:
- El dispositivo envía un campo CTDIR de un ciclo (solo se permiten tipos de transferencia de E/S y de memoria).
- El dispositivo envía una dirección (de 16 o 32 bits, según el tipo). Se transmite comenzando por el nibble más significativo.
- El dispositivo envía un campo de tamaño de transferencia de un ciclo, que codifica 8, 16 o 32 bits.
- En el caso de una escritura, los datos se transfieren a continuación. A diferencia de los ciclos DMA compatibles con ISA, los datos se transfieren en una sola ráfaga, sin estados de espera adicionales.
- A continuación, se producen dos ciclos de cambio de sentido mientras el autobús LAD se devuelve al anfitrión.
- Se inserta un campo SYNC de longitud variable, bajo el control del host.
- En el caso de una lectura, a continuación se muestran los datos proporcionados por el host.
Esto difiere del bus mastering ISA de 16 bits porque el bus mastering LPC requiere una dirección de memoria de 32 bits al realizar una transferencia de memoria, no utiliza un canal DMA de estilo ISA y puede admitir transferencias de 8, 16 o 32 bits; mientras que el bus mastering ISA de 16 bits requiere una dirección de memoria de 24 bits al realizar una transferencia de memoria, requiere el uso de un canal DMA de estilo ISA y no puede realizar transferencias de 32 bits. [ 12 ]
INICIO = 0101: Acceso a la localidad TPM
Las especificaciones del Módulo de Plataforma Segura 2.0 definen ciclos especiales de lectura y escritura de TPM que se basan en los ciclos de lectura y escritura de E/S. [ 13 ] Estos ciclos utilizan un campo START con el valor 0101, anteriormente reservado, seguido de un nibble CTDIR y una dirección de E/S de 16 bits, al igual que una escritura compatible con ISA. [ 13 ] Estos ciclos se utilizan al usar la función de localidad de un TPM. [ 13 ]
Periféricos compatibles
La especificación del bus LPC limita el tipo de periféricos que se pueden conectar. Solo permite dispositivos pertenecientes a las siguientes clases: dispositivos de E/S avanzadas, memoria BIOS no volátil , concentradores de firmware, dispositivos de audio y controladores integrados. Además, cada clase tiene restricciones en cuanto a los ciclos de bus permitidos. [ 7 ]
Los dispositivos Super I/O y los dispositivos de audio pueden aceptar ciclos de E/S, aceptar ciclos DMA de terceros de estilo ISA y generar ciclos de maestro de bus. Los dispositivos de memoria de aplicación genérica, como la memoria BIOS no volátil y los dispositivos flash LPC, pueden aceptar ciclos de memoria. Los concentradores de firmware pueden aceptar ciclos de memoria de firmware. Los controladores integrados pueden aceptar ciclos de E/S y generar ciclos de maestro de bus. Algunos ciclos ISA que se consideraron no útiles para estas clases fueron eliminados. Estos incluyen ciclos de memoria de dos bytes iniciados por el host y ciclos de E/S de dos bytes iniciados por el host. Estos tipos de transferencia eliminados podían ser iniciados por el host en buses ISA pero no en buses LPC. El host tendría que simular ciclos de dos bytes dividiéndolos en dos ciclos de un byte. El bus ISA tiene un concepto similar porque el bus ISA original de 8 bits requería que los ciclos de 16 bits se dividieran. Por lo tanto, el bus ISA de 16 bits dividía automáticamente los ciclos de 16 bits en ciclos de 8 bits para beneficio de los periféricos ISA de 8 bits, a menos que el dispositivo ISA al que se dirigía un ciclo de memoria o E/S de 16 bits emitiera una señal que indicara al bus que podía aceptar la transferencia de 16 bits solicitada sin la ayuda de un divisor de ciclo ISA. [ 12 ] El bus mastering de estilo ISA se ha reemplazado en el bus LPC con un protocolo de bus mastering que no depende en absoluto de los controladores DMA de estilo ISA. Esto se hizo para eliminar la limitación de ISA sobre qué tipo de ciclos de bus mastering puede iniciar un dispositivo en qué canal DMA. Los ciclos de bus de estilo ISA que LPC heredó de ISA son ciclos de bus de E/S iniciados por el host de un byte, ciclos de memoria iniciados por el host de un byte y ciclos DMA de estilo ISA iniciados por el host de uno o dos bytes. [ 7 ]
Sin embargo, se agregaron algunos ciclos de bus que no son ISA. Los ciclos que se agregaron para mejorar el rendimiento de los dispositivos además de los concentradores de firmware incluyen ciclos de memoria de maestro de bus de uno, dos y cuatro bytes de estilo LPC; ciclos de E/S de maestro de bus de uno, dos y cuatro bytes; y DMA de terceros de 32 bits que cumple con todas las restricciones del DMA de terceros de estilo ISA excepto por el hecho de que puede realizar transferencias de 32 bits. Cualquier dispositivo que pueda aceptar DMA tradicional de estilo ISA también puede usar este DMA de estilo ISA de 32 bits. El host podía iniciar ciclos de DMA de estilo ISA de 32 bits, mientras que los periféricos podían iniciar ciclos de maestro de bus. Los concentradores de firmware consumían ciclos de firmware que fueron diseñados solo para concentradores de firmware para que las direcciones de firmware y las direcciones de E/S mapeadas en memoria normales pudieran superponerse sin conflicto. Las lecturas de memoria de firmware podían leer 1, 2, 4, 16 o 128 bytes a la vez. Las escrituras en la memoria del firmware podían escribir uno, dos o cuatro bytes a la vez. [ 7 ]
El bus LPC no admite tarjetas de expansión ISA.
Véase también
Referencias
- ↑ Kovah, Xeno; Kallenberg, Corey; LegbaCore LLC (15 de octubre de 2015). SPI Flash (PDF) . X86 avanzado: BIOS y aspectos internos del modo de administración del sistema . OpenSecurityTraining.info . pág. 5.
- 1 2 Johannes Winter (2011). "Guía del secuestrador para el autobús LPC" . tugraz.at . Consultado el 19 de diciembre de 2013 .
- ↑ Guía de diseño del módulo de depuración LPC instalable (PDF) (Especificación). Revisión 1.0. Intel . 2000. pág. 15. Archivado del original (PDF) el 4 de junio de 2017.
- ↑ "Lector de código POST de BIOS con Raspberry Pi Pico" . GitHub . Consultado el 11 de septiembre de 2024 .
- ↑ "Periféricos de placa base industrial: EXT-RS232" . DFI . Consultado el 11 de septiembre de 2024 .
- 1 2 Soporte para IRQ serializado para sistemas PCI (Revisión 6.0; 1 de septiembre de 1995)
- 1 2 3 4 5 6 7 "Especificación de la interfaz Intel Low Pin Count (LPC)" (PDF) . Revisión 1.1. Intel . Agosto de 2002. Número de documento 251289-001. Archivado (PDF) del original el 31 de marzo de 2019. Recuperado el 11 de septiembre de 2024 .
- ↑ Dagan, Sharon (2002-05-03). "Alternativas de almacenamiento flash para el bus de bajo número de pines (LPC)" . EE Times .
- ↑ "Controlador de bus LPC. Diseño de referencia RD1049" . www.latticesemi.com . Lattice Semiconductor. Archivado del original (PDF) el 7 de agosto de 2013.
- ↑ Huang, Andrew (2003). Hacking the Xbox: An Introduction to Reverse Engineering . No Starch Press. pp. 48, 151. ISBN 1-59327-029-1.
- ↑ O. Theis. "Modding the Xbox" . Sección "Detalles del LPC".
- 1 2 Intel Corp. (25/04/2003), "Capítulo 12: Bus ISA" (PDF) , Arquitectura de PC para técnicos: Nivel 1 , consultado el 27/01/2015.
- 1 2 3 "Especificación del perfil TPM (PTP) de la plataforma cliente de PC de TCG" ( PDF) . Trusted Computing Group . 26 de enero de 2015. págs. 29, 123–124 . Recuperado el 5 de octubre de 2016 . .
Enlaces externos
- Soporte de IRQ serializado para sistemas PCI archivado el 4 de marzo de 2016 en Wayback Machine utilizado por el bus LPC
- Núcleos anfitriones y periféricos LPC de código abierto
- Introducciones relacionadas con la informática en 1998
- buses informáticos
- Estándares de hardware informático