(UPD: en plus des schémas, une photo de la planche est ajoutée)
(UPD2: informations du canal IRC libreboot)
- RINKAN a une protection de courant de 55mA, la fonctionnalité peut être trouvée dans la description sur TB62501F.
- PMH7 est un ensemble de portes ("la même chose que FPGA vient d'être programmé avec jusqu'à 3 couches métalliques, un peu comme maskrom"), pour Toshiba, il s'appelait TC-200G
- Le PMH7 est connecté non seulement à l'EC, mais également à l'ICH via le bus LPC et ressemble du point de vue de l'hôte à un extenseur GPIO.
- Ils sont sûrs que les broches PMH inutilisées pendent vraiment dans l'air, et une fermeture de broche ne brûlera probablement que les sorties PMH, mais pas LDO
- Ils suggèrent une panne spontanée de deux RINKAN pour des raisons indépendantes l'une de l'autre (éventuellement provoquée par le chauffage de la carte mère lors du memtest)
- Ils recommandent de changer RINKAN pour la même puce de ROHM: BD4175KVT-BD4176KVT-BD41760KVT, coûte environ 2 $
- Nous convenons que vous devez effectuer une expérience pour exécuter memtest avec une limite actuelle
Récemment, nous avons eu une histoire déchirante - deux ordinateurs portables Lenovo T500 sont morts en une matinée. L'un serait mort - personne n'a même commencé à comprendre. Mais deux en un matin - c'est trop! De plus, au moins l'un d'entre eux (et cela est confirmé par trois utilisateurs!) A fonctionné normalement jusqu'à la dernière minute, a été éteint par le bouton d'alimentation, transféré à 100 mètres de la salle de conversation et ... ne s'est pas allumé.
Naturellement, en premier lieu, toutes les méthodes de réanimation artisanales ont été testées: remplacer la batterie, remplacer l'adaptateur secteur ... Retirer la batterie et débrancher l'alimentation, réinitialiser le CMOS et ainsi de suite ... Résultat? Exactement zéro - les ordinateurs portables étaient toujours en briques.
Ils ont commencé à reconstituer l'image des événements afin de trouver au moins un indice. Il s'est avéré ce qui suit:
- À J-1, de la mémoire a été ajoutée aux deux ordinateurs portables. Après avoir remplacé les lattes de mémoire, les deux se sont allumées et ont fonctionné correctement jusqu'au soir
- La nuit du jour J, memtest a été lancé sur les deux ordinateurs (plus précisément, memtest86 + 5.01-3 de la distribution Debian)
- Dans la matinée du jour "D", les deux ordinateurs ont été éteints par le bouton d'alimentation et ne se sont pas allumés
- De plus, ils ont été brièvement connectés via le connecteur VGA au même projecteur et au même adaptateur secteur dans la pièce
Évidemment, la mort des ordinateurs portables doit être liée à l'une des trois choses: un adaptateur secteur, un projecteur ou un memtest. Mais avec quoi exactement?
Tout d'abord, nous avons vérifié le projecteur. Ils n'ont pas trouvé le crime, mais ont également découvert que ce jour-là (mais plus tard) d'autres ordinateurs portables y étaient connectés, qui sont restés en vie. En second lieu, nous avons vérifié l'adaptateur secteur - il semblait sous-estimer la tension et il était mis en quarantaine.
Les ordinateurs portables ont été remis au service qui les a retournés avec le résultat suivant: "panne de la carte mère, pièces détachées manquantes!". J'ai dû ouvrir la carcasse nous-mêmes (l'avantage sur le réseau peut être trouvé à la fois des schémas et des manuels de service pour l'ancienne série Thinkpad).
À ce stade, tout le monde a commencé (à titre d'exception) à soupçonner la mort d'ordinateurs portables memtest. Mais ce n'était pas du tout évident - comment exactement? En fin de compte, il y avait une chance que la mort des ordinateurs portables soit rare, désagréable, mais reste une coïncidence. Mais non! Ou oui ... En général, nous ne savons pas encore exactement.
Ici, vous devriez faire une digression sur la construction du système de gestion de l'énergie sur le hêtre IBM / Lenovo (au moins les anciennes séries). Dans les appareils plus simples, la gestion de l'alimentation est confiée soit au processeur / chipset, soit à un contrôleur de carte mère spécialisé (contrôleur système, également appelé contrôleur intégré). Relativement parlant, cette chose est responsable des fonctions réflexes et vertébrales de l'ordinateur portable: commutation des sources de courant, alimentation par batterie, identification de la batterie / verrouillage du fournisseur, etc. Mais pas chez IBM / Lenovo!
Apparemment, les ingénieurs d'IBM pensaient que le micrologiciel EC pourrait contenir des erreurs ou que le contrôleur lui-même se bloquerait soudainement. Bien sûr, la CE a son propre chien de garde, mais ce n'est pas non plus une panacée. Par conséquent, la responsabilité de la CE est uniquement de générer des signaux de commande de puissance de haut niveau. Les touches de puissance déverrouillent et verrouillent deux microcircuits spécialisés (et non sans réfléchir, mais en comparant les souhaits de la CE avec les lectures des capteurs de température, la présence de la tension requise pour la prochaine étape sur les pneus, etc.). Ces puces sont: RINKAN (déchiffrement inconnu) et PMH_7 (Power Management Hub rev7)
Veuillez noter que RINKAN n'a pas de sorties vers les bus CPU - en principe, il est inaccessible pour le processeur. L'une des fonctions importantes (et non évidentes) de RINKAN est la génération d'une tension stable de 3,3 V vers le bus VCC3SW (appelons-le le bus de démarrage). Puisqu'il n'y a pas de self à proximité - on peut supposer que ce régulateur est construit dans un schéma linéaire simple. Autrement dit, quelque part à l'intérieur se trouve un transistor avec un cerclage et avec sa résistance active, il plante la puissance, ne laissant que 3,3 V. Ce régulateur est alimenté par le pied VREGIN20, sur lequel toutes les sources d'alimentation de l'ordinateur portable (station d'accueil, adaptateur secteur, batterie principale et batterie ultrabay) sont connectées via des diodes. Autrement dit, cela fonctionne toujours en général (par conséquent, faible puissance - vous avez besoin d'un très petit courant de votre propre consommation!)
PMH_7 dans l'environnement de travail PMH est une puce plus intelligente. Au minimum, elle a une connexion à la CE via le bus SPI. De plus, il active ou désactive tout un tas de tensions et de signaux d'horloge sur la carte mère de l'ordinateur portable. Les deux puces sont fabriquées sur mesure, sans fiche technique. Étant donné que Lenovo / IBM utilise les mêmes puces personnalisées pour différentes gammes de produits, certaines branches PMH ne sont pas utilisées dans le T500. Cependant, il est peu probable qu'ils soient suspendus en l'air. Les recommandations typiques suggèrent de tirer les fils inutilisés vers le circuit d'alimentation ou vers la terre. N'oubliez pas cela.
Malgré le manque de documentation, l'équipe du projet Coreboot (comparant les circuits portables des T60, T40 et des anciennes séries d'ordinateurs portables - où les fonctions RINKAN / PMH étaient encore réparties entre les microcircuits d'un degré d'intégration moindre) a accumulé quelque chose d'intéressant. PMH est disponible dans l'espace d'adressage de la CPU. Pas directement, bien sûr, mais via la CE - mais toujours disponibles! UPD: connecté à l'ICH via le bus LPC (Low pin count - analog of ISA). Pour lever ou abaisser la jambe PMH, ils utilisent la séquence d'opérations suivante ( 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);
Autrement dit, nous écrivons d'abord le code de registre PMH dans le registre EC (mappé à l'espace d'adressage CPU), puis nous pouvons lire ou écrire son contenu. Par exemple, nous voulons activer le rétro-éclairage (55 PMH pied): nous écrivons dans le registre 0x55 bit 2 - tout est simple.
UPD: des collègues du projet Libreboot considèrent le scénario de court-circuit décrit par PMH improbable, en outre - la protection actuelle dans RINKAN aurait dû fonctionner à 55mA
Malheureusement, memtest fait à peu près la même chose - il lit et écrit différentes valeurs dans différentes zones de la mémoire. Théoriquement, le BIOS doit décrire les zones de mémoire réservées aux périphériques d'E / S. Et memtest ne devrait rien écrire là-bas - mais ... écrit! Et, apparemment, à un moment donné, il a levé ou abaissé sa jambe PMH infructueuse. En conséquence, via le transistor de pied de sortie PMH, le bus d'alimentation VCC3SW a été court-circuité à la masse ...
Que s'est-il passé ensuite? Puis RINKAN a commencé à se prélasser. Parce que le courant augmentait, le PMH en mode clé l'a traîné sans aucun problème, et le transistor semi-ouvert du LDO RINKAN empirait. Mais extérieurement, cela ne s'est manifesté en aucune façon: dans un ordinateur portable allumé, personne ne mange à partir d'une source de faible puissance de 3,3 V, et l'alimentation est fournie par un puissant DC / DC spécial alimentant les bus principaux 3,3 et 5 volts, respectivement.
Eh bien, lorsque le bouton d'alimentation a été enfoncé, les bus principaux ont été mis hors tension. Il n'y avait plus de courant sur le bus de démarrage 3,3 V! Et l'ordinateur portable s'est transformé en citrouille brique.
UPD: théorie alternative (omz + libreboot)
Dans les centres de service, la tendance au crash de RINKAN est connue. Les collègues de Libreboot soutiennent en outre que cela est particulièrement vrai pour les contrôleurs Toshiba (et ROHM sera meilleur). En conséquence, memtest était complètement innocent et une panne presque simultanée de deux ordinateurs portables s'est produite:
Résultats diagnostiques:
Le premier ordinateur portable est une carte graphique double COR5SOPV3. Sur le bus VCC3SW au lieu de 3,3, seulement 1,2 volts. La résistance à la terre est d'environ 400 ohms. Souder doucement et augmenter la sortie du convertisseur de tension RINKAN. La résistance du bus a immédiatement augmenté à des centaines de kilo-ohms. Ils ont appliqué une tension de 3,3 V à partir d'une source externe - le hêtre a pris vie.
Carte en cours de réparationLa puce avec un autocollant blanc est un contrôleur intégré, au milieu avec des fils - RINKAN, le dernier sans autocollants - PMH.

En conséquence, nous avons sélectionné un LDO externe de faible puissance (LP2930-3.3), qui alimente le bus de démarrage au lieu de RINKAN. Selon les résultats du test, il a été constaté que la mort clinique reportée a laissé une empreinte sur la nature de l'appareil - l'ordinateur portable refuse de s'allumer si la batterie est insérée mais l'adaptateur n'est pas inséré. Si vous voulez l'allumer - retirez la batterie, allumez l'adaptateur secteur et ensuite la batterie peut être réinsérée. Toutes les autres fonctions (charge, autonomie de la batterie, veille, etc.) ne posent aucun problème et c'est la seule façon de l'activer. Ils n'ont pas pris la peine - ils ont décidé la question administrativement: utilisez le sommeil ou redémarrez au lieu de fermer. La première victime a eu de la chance!
Et le second - non ... Il y a une carte C5ISOVP avec carte graphique intégrée - il n'y a aucune tension sur le bus et la résistance à la terre est de dizaines d'ohms. Après avoir arraché la jambe, le VCC3SW ne s'est pas amélioré - la même faible résistance selon VREGIN20. Ils l'ont également arraché, allumé l'alimentation externe du bus de démarrage - ils ont vu 3,3 et 5 volts sur le principal. Cependant, malgré un démarrage encourageant, les signaux Power-good ne sont pas apparus sur la sortie PMH / RINKAN et le système n'a pas pu démarrer. Apparemment, la logique interne des microcircuits est endommagée, et cela n'est pas traité ...
Il est très probable que memtest puisse tuer les ordinateurs portables de cette façon de la série T6x à la série T420 / 520 inclus. À partir de T430 / 530, le mode de communication avec la CE a été modifié et l'écriture dans les registres PMH est en principe impossible. Peut-être que seules certaines versions du micrologiciel BIOS ou EC sont affectées. Un rapport de bogue a été écrit pour les mainteneurs de paquets debian, peut-être qu'ils peuvent trouver quelque chose en amont ...
La raison exacte de l'échec des deux ordinateurs portables après le démarrage de memtest est inconnue. Une expérience qui peut établir si memtest provoque une consommation de courant hors conception à partir du bus d'alimentation de démarrage est prévue, mais la date n'a pas encore été déterminée. Nous rendrons également compte des résultats.
Lorsque vous lancez memtest sur les ordinateurs portables de la série Lenovo T6x jusqu'au T420 / 520 inclus, vous devez considérer les risques et avantages potentiels de cet événement. Dans le cas où vous exécutez le test et qu'il n'a pas (ou n'a pas) causé le blocage ou le blocage de l'ordinateur portable - veuillez écrire un commentaire dans le commentaire indiquant le modèle d'ordinateur portable et la durée d'exécution du test.
C'est tout - bonne chance!