Una prueba de memoria que mata computadoras portátiles es casi una historia de detectives

(UPD: además de los esquemas, se agrega una foto del tablero)
(UPD2: información del canal IRC libreboot)


  • RINKAN tiene una protección actual de 55 mA, la funcionalidad se puede encontrar en la descripción en TB62501F.
  • PMH7 es un conjunto de puertas ("lo mismo que FPGA acaba de programar con hasta 3 capas de metal, algo así como maskrom"), para Toshiba se llamaba TC-200G
  • PMH7 está conectado no solo al EC, sino también al ICH a través del bus LPC y se ve desde el punto de vista del host como un extensor GPIO.
  • Están seguros de que los pines PMH no utilizados realmente cuelgan en el aire, y es probable que un cierre de pines queme solo salidas PMH, pero no LDO
  • Sugieren una falla espontánea de dos RINKAN por razones independientes entre sí (posiblemente provocada por el calentamiento de la placa base durante la prueba de memoria)
  • Recomiendan cambiar RINKAN al mismo chip de ROHM: BD4175KVT-BD4176KVT-BD41760KVT, cuestan alrededor de $ 2
  • Aceptamos que debe realizar un experimento para ejecutar memtest con un límite actual

Recientemente tuvimos una historia desgarradora: dos computadoras portátiles Lenovo T500 murieron en una mañana. Uno habría muerto, nadie incluso comenzó a entender. Pero dos en una mañana, ¡eso es demasiado! Además, al menos uno de ellos (¡y esto lo confirman tres usuarios!) Funcionó normalmente hasta el último minuto, fue apagado por el botón de encendido, transferido 100 metros a la sala de conversación y ... no se encendió.


Naturalmente, en primer lugar, se probaron todos los métodos de reanimación artesanal: reemplace la batería, reemplace el adaptador de alimentación ... Retire la batería y desconecte la alimentación, reinicie CMOS y así sucesivamente ... ¿Resultado? Exactamente cero: las computadoras portátiles continuaron en un estado de ladrillos.


Comenzaron a reconstruir la imagen de los eventos para encontrar al menos alguna pista. Resultó lo siguiente:


  • En D-1, se agregó memoria a ambas computadoras portátiles. Después de reemplazar los listones de memoria, ambos se encendieron y funcionaron correctamente hasta la noche
  • En la noche del Día D, se lanzó memtest en ambas computadoras (más precisamente, memtest86 + 5.01-3 de la distribución Debian)
  • En la mañana del día "D", ambas computadoras se apagaron con el botón de encendido y no se encendieron
  • Además, se conectaron brevemente a través del conector VGA al mismo proyector y al mismo adaptador de corriente de la sala.

Obviamente, la muerte de las computadoras portátiles debe estar relacionada con una de estas tres cosas: un adaptador de corriente, un proyector o un memtest. ¿Pero con qué exactamente?


Primero que nada, revisamos el proyector. No encontraron el crimen, pero también descubrieron que ese día (pero más tarde) se conectaron otras computadoras portátiles, que permanecieron vivas y bien. En segundo lugar, verificamos el adaptador de corriente: parecía subestimar el voltaje y estaba en cuarentena.


Las computadoras portátiles se entregaron al servicio, que las devolvió con el siguiente resultado: "falla de la placa base, faltan piezas de repuesto". Tuve que abrir la carcasa nosotros mismos (el beneficio en la red se puede encontrar tanto en esquemas como en manuales de servicio para la antigua serie Thinkpad).


En este punto, todos comenzaron (a modo de excepción) a sospechar la muerte de las computadoras portátiles memtest. Pero no era completamente obvio, ¿cómo exactamente? Al final, existía la posibilidad de que la muerte de las computadoras portátiles sea algo raro, desagradable, pero aún así es una coincidencia. Pero no! O sí ... En general, aún no lo sabemos exactamente.


Aquí debe hacer una digresión sobre la construcción del sistema de gestión de energía en haya IBM / Lenovo (al menos la serie anterior). En dispositivos más simples, la administración de energía se otorga al procesador / conjunto de chips o a un controlador de placa base especializado (controlador del sistema, también conocido como controlador integrado). Relativamente hablando, esta cosa es responsable de las funciones reflejas y espinales de una computadora portátil: cambiar las fuentes de corriente, la energía de la batería, la identificación de la batería / el bloqueo del proveedor, y similares. ¡Pero no en IBM / Lenovo!


Al parecer, los ingenieros de IBM pensaron que el firmware de la CE podría contener errores o que el controlador en sí se congelaría repentinamente. Por supuesto, la CE tiene su propio perro guardián, pero tampoco es una panacea. Por lo tanto, la responsabilidad de la CE es solo generar señales de control de potencia de alto nivel. Las teclas de encendido desbloquean y bloquean dos microcircuitos especializados (y no sin pensar, sino comparando los deseos de la CE con las lecturas de los sensores de temperatura, la presencia del voltaje requerido para el siguiente paso en los neumáticos, etc.). Estos chips son: RINKAN (descifrado desconocido) y PMH_7 (Power Management Hub rev7)


RINKAN en el interior

imagen


Tenga en cuenta que RINKAN no tiene salidas a los buses de la CPU; en principio, es inalcanzable para el procesador. Una de las funciones importantes (y no obvias) de RINKAN es la generación de un voltaje estable de 3.3v para el bus VCC3SW (llamémoslo el bus de inicio). Como no hay estrangulamientos cercanos, se puede suponer que este regulador está construido en un esquema lineal simple. Es decir, en algún lugar dentro se encuentra un transistor con un fleje y con su resistencia activa, planta energía, dejando solo 3.3v. Este regulador está alimentado por la pata VREGIN20, en la que todas las fuentes de alimentación de la computadora portátil (estación de acoplamiento, adaptador de corriente, batería principal y batería ultrabay) están conectadas a través de diodos. Es decir, siempre funciona en general (por lo tanto, de baja potencia: ¡necesita una corriente muy pequeña de su propio consumo!)


PMH_7 en el entorno laboral

imagen


PMH es un chip más inteligente. Como mínimo, ella tiene una conexión a la CE a través del bus SPI. Además, enciende o apaga un montón de voltajes y señales de reloj en la placa base del portátil. Ambos chips están hechos a medida, sin hoja de datos. Dado que Lenovo / IBM usa los mismos chips personalizados para diferentes líneas de productos, algunas de las patas PMH no se usan en el T500. Sin embargo, era poco probable que los dejaran colgando en el aire. Las recomendaciones típicas sugieren tirar de cables no utilizados al circuito de alimentación o al suelo. Recuerda esto


A pesar de la falta de documentación, el equipo del proyecto Coreboot (comparando los circuitos de los portátiles de las series T60, T40 y portátiles más antiguas, donde las funciones RINKAN / PMH todavía estaban divididas entre los microcircuitos de menor grado de integración) acumuló algo interesante. PMH está disponible en el espacio de direcciones de la CPU. No directamente, por supuesto, sino a través de la CE, ¡pero aún está disponible! UPD: conectado a ICH a través del bus LPC (bajo recuento de pines - análogo de ISA). Para subir o bajar la pierna PMH, utilizan la siguiente secuencia de operaciones ( pmh7.c ):


outb(reg, EC_LENOVO_PMH7_ADDR); val = inb(EC_LENOVO_PMH7_DATA); outb(reg, EC_LENOVO_PMH7_ADDR); outb(val | (1 << bit), EC_LENOVO_PMH7_DATA); 

Es decir, primero escribimos el código de registro PMH en el registro EC (asignado al espacio de direcciones de la CPU), y luego podemos leer o escribir su contenido. Por ejemplo, queremos encender la luz de fondo (55 PMH pie): escribimos en el registro 0x55 bit 2, todo es simple.


UPD: los colegas del proyecto Libreboot consideran poco probable el escenario de cortocircuito descrito a través de PMH, además, la protección actual en RINKAN debería haber funcionado a 55 mA


Desafortunadamente, memtest hace aproximadamente lo mismo: lee y escribe valores diferentes en diferentes áreas de la memoria. Teóricamente, el BIOS debe describir las áreas de memoria reservadas para dispositivos de E / S. Y memtest no debería escribir nada allí abajo, pero ... ¡anotó! Y, aparentemente, en algún momento, él levantó o bajó su pierna PMH sin éxito. En consecuencia, a través del transistor de pie de salida PMH, el bus de potencia VCC3SW se puso en cortocircuito a tierra ...


¿Qué pasó después? Entonces RINKAN comenzó a tomar el sol. Debido a que la corriente estaba creciendo, el PMH en modo clave lo arrastró sin ningún problema, y ​​el transistor medio abierto en el LDO RINKAN estaba empeorando. Pero exteriormente, esto no se manifestó de ninguna manera: en una computadora portátil encendida, nadie come de una fuente de baja potencia de 3.3V, y la energía es suministrada por un potente DC / DC especial que suministra los buses principales de 3.3 y 5 voltios, respectivamente.


Bueno, cuando se presionó el botón de encendido, los buses principales se desactivaron. ¡Ya no había energía en el bus de arranque de 3.3v! Y la laptop se convirtió en calabaza ladrillo


UPD: teoría alternativa (omz + libreboot)


En los centros de servicio, se conoce la tendencia al choque RINKAN. Los colegas de Libreboot argumentan que esto es especialmente cierto para los controladores Toshiba (y ROHM será mejor). En consecuencia, memtest fue inocente todo el tiempo, y ocurrió una falla casi simultánea de dos computadoras portátiles:


  • O por razones independientes entre sí (posiblemente provocadas por el calentamiento de la placa base bajo un largo memtest)


  • O un mal funcionamiento (ruido) en la salida de alimentación del adaptador, al cual (aunque por un corto tiempo) ambas computadoras portátiles estaban conectadas.

Resultados diagnósticos:


La primera computadora portátil es una placa gráfica dual COR5SOPV3. En el bus VCC3SW en lugar de 3.3, solo 1.2 voltios. La resistencia a la tierra es de aproximadamente 400 ohmios. Soldar y elevar suavemente la salida del convertidor de voltaje RINKAN. La resistencia del bus aumentó inmediatamente a cientos de kilo-ohmios. Aplicaron 3.3V de una fuente externa: la haya cobró vida.


Junta en proceso de reparación

El chip con una pegatina blanca es un controlador integrado, en el medio con cables - RINKAN, el último sin pegatinas - PMH.


imagen


Como resultado, seleccionamos un LDO externo de baja potencia (LP2930-3.3), que alimenta el bus de arranque en lugar de RINKAN. Según los resultados de la prueba, se descubrió que la muerte clínica pospuesta dejó una huella en la naturaleza del dispositivo: la computadora portátil se niega a encenderse si se inserta la batería pero no se inserta el adaptador. Si desea encenderlo, retire la batería, encienda el adaptador de corriente y, luego, la batería se puede volver a insertar. Todas las demás funciones (carga, duración de la batería, suspensión, etc.) no son un problema, y ​​es la única forma de activarlas. No se molestaron, decidieron la cuestión administrativamente: use el modo de suspensión o reinicio en lugar de cerrar. ¡La primera víctima tuvo suerte!


Y el segundo, no ... Hay una placa C5ISOVP con gráficos integrados: no hay voltaje en el bus y la resistencia a tierra es de decenas de ohmios. Después de arrancar la pierna, el VCC3SW no mejoró, la misma baja resistencia según VREGIN20. También lo desconectaron, encendieron la alimentación externa al bus de arranque: vieron 3.3 y 5 voltios en el principal. Sin embargo, a pesar del inicio alentador, las señales de buena potencia no aparecieron en la salida PMH / RINKAN y el sistema no pudo iniciarse. Aparentemente, la lógica interna de los microcircuitos está dañada, y esto no se trata ...


Es muy probable que memtest pueda matar computadoras portátiles de esta manera desde la serie T6x a la serie T420 / 520 inclusive. A partir de T430 / 530, la forma de comunicación con la CE ha cambiado y, en principio, es imposible escribir en los registros de PMH. Quizás solo se vean afectadas ciertas versiones de BIOS o firmware de EC. Se escribió un informe de error para los mantenedores de paquetes de Debian, tal vez puedan encontrar algo con el flujo ascendente ...


Se desconoce el motivo exacto del fallo de las dos computadoras portátiles después de iniciar memtest. Se planifica un experimento que puede establecer si memtest causa un consumo de corriente fuera de diseño desde el bus de alimentación de arranque, pero la fecha aún no se ha determinado. Los resultados serán reportados adicionalmente.


Al iniciar memtest en las laptops de la serie Lenovo T6x hasta T420 / 520 inclusive, debe considerar los riesgos y beneficios potenciales de este evento. En caso de que ejecute la prueba y no causó (o causó) que la computadora portátil se bloquee o cuelgue, escriba un comentario en el comentario que indique el modelo de la computadora portátil y el tiempo de ejecución de la prueba.


Eso es todo, ¡buena suerte!

Source: https://habr.com/ru/post/es413469/


All Articles