(UPD: além dos esquemas, uma foto do quadro é adicionada)
(UPD2: informações do canal IRC libreboot)
- O RINKAN possui uma proteção atual de 55mA, a funcionalidade pode ser encontrada na descrição no TB62501F.
- O PMH7 é um conjunto de portas ("a mesma coisa que o FPGA acabou de ser programado com até 3 camadas de metal, como o maskrom"), para a Toshiba foi chamado TC-200G
- O PMH7 é conectado não apenas ao EC, mas também ao ICH através do barramento LPC e, do ponto de vista do host, parece um extensor GPIO.
- Eles têm certeza de que os pinos PMH não utilizados realmente ficam no ar, e é provável que um fechamento de pinos grave apenas as saídas PMH, mas não o LDO
- Eles sugerem uma falha espontânea de dois RINKANs por motivos independentes um do outro (possivelmente provocados pelo aquecimento da placa-mãe durante o teste de memória)
- Eles recomendam mudar o RINKAN para o mesmo chip da ROHM: BD4175KVT-BD4176KVT-BD41760KVT, custa cerca de US $ 2
- Concordamos que você precisa realizar uma experiência para executar o teste de memtest com um limite atual
Recentemente, tivemos uma história comovente - dois laptops Lenovo T500 morreram em uma manhã. Um teria morrido - ninguém sequer começou a entender. Mas duas em uma manhã - isso é demais! Além disso, pelo menos um deles (e isso é confirmado por três usuários!) Trabalhou normalmente até o último minuto, foi desligado pelo botão liga / desliga, transferido 100 metros para a sala de conversação e ... não ligou.
Naturalmente, em primeiro lugar, todos os métodos de ressuscitação artesanal foram testados: substitua a bateria, substitua o adaptador de energia ... Remova a bateria e desconecte a energia, redefina o CMOS e assim por diante ... Resultado? Exatamente zero - os laptops continuaram em estado de alerta.
Eles começaram a reconstruir a imagem dos eventos, a fim de encontrar pelo menos alguma pista. O resultado foi o seguinte:
- No D-1, a memória foi adicionada aos dois laptops. Depois de substituir as ripas de memória, as duas ligaram e funcionaram corretamente até a noite
- Na noite do dia D, o memtest foi lançado nos dois computadores (mais precisamente, o memtest86 + 5.01-3 da distribuição Debian)
- De manhã, no dia "D", os dois computadores foram desligados pelo botão liga / desliga e não ligaram
- Além disso, eles foram brevemente conectados via conector VGA ao mesmo projetor e ao mesmo adaptador de energia na sala
Obviamente, a morte de laptops deve estar relacionada a uma das três coisas: um adaptador de energia, um projetor ou um teste de memória. Mas com o que exatamente?
Primeiro de tudo, verificamos o projetor. Eles não encontraram o crime, mas também descobriram que naquele dia (mais tarde) outros laptops estavam conectados a ele, que permaneciam vivos e bem. Em segundo lugar, verificamos o adaptador de energia - ele parecia subestimar a tensão e estava em quarentena.
Os laptops foram entregues ao serviço, que os devolveu com o seguinte resultado: "falha da placa-mãe, faltam peças de reposição!". Eu mesmo tive que abrir a carcaça (o benefício na rede pode ser encontrado nos esquemas e nos manuais de serviço da antiga série Thinkpad).
Nesse ponto, todos começaram (por exceção) a suspeitar da morte de laptops memtest. Mas não era completamente óbvio - como exatamente? No final, havia a chance de a morte de laptops ser uma rara, desagradável, mas ainda uma coincidência. Mas não! Ou sim ... Em geral, ainda não sabemos exatamente.
Aqui você deve fazer uma digressão sobre a construção do sistema de gerenciamento de energia em faia IBM / Lenovo (pelo menos as séries mais antigas). Em dispositivos mais simples, o gerenciamento de energia é concedido ao processador / chipset ou a um controlador especializado da placa-mãe (System Controller, aka Embedded controller). Em termos relativos, essa coisa é responsável pelas funções reflexas e da coluna vertebral de um laptop: alternar fontes de corrente, energia da bateria, identificação da bateria / bloqueio do fornecedor e similares. Mas não na IBM / Lenovo!
Os engenheiros da IBM, aparentemente, pensaram que o firmware da EC poderia conter erros ou o próprio controlador congelaria subitamente. Obviamente, a CE tem seu próprio cão de guarda, mas também não é uma panacéia. Portanto, a responsabilidade da CE é apenas gerar sinais de controle de potência de alto nível. As teclas de força destrancam e bloqueiam dois microcircuitos especializados (e sem pensar, mas comparando os desejos da CE com as leituras dos sensores de temperatura, a presença da tensão necessária para a próxima etapa nos pneus, etc.). Esses chips são: RINKAN (descriptografia desconhecida) e PMH_7 (Power Management Hub rev7)
Observe que o RINKAN não possui saídas para os barramentos da CPU - em princípio, é inatingível para o processador. Uma das funções importantes (e não óbvias) do RINKAN é a geração de uma tensão estável de 3,3v para o barramento VCC3SW (vamos chamá-lo de barramento de partida). Como não há bobinas nas proximidades - pode-se supor que esse regulador seja construído em um esquema linear simples. Ou seja, em algum lugar lá dentro, fica um transistor com uma cinta e, com sua resistência ativa, planta energia, deixando apenas 3,3v. Esse regulador é alimentado pela perna VREGIN20, na qual todas as fontes de energia do laptop (estação de acoplamento, adaptador de energia, bateria principal e bateria ultrabay) são conectadas por diodos. Ou seja, sempre funciona em geral (portanto, de baixa potência - você precisa de uma corrente muito pequena do seu próprio consumo!)
PMH_7 no ambiente de trabalho PMH é um chip mais inteligente. No mínimo, ela tem uma conexão com a CE através do barramento SPI. Além disso, ele liga ou desliga um monte de tensões e sinais de relógio na placa-mãe do laptop. Ambos os chips são feitos sob medida, sem folha de dados. Como a Lenovo / IBM usa os mesmos chips personalizados para diferentes linhas de produtos, algumas das pernas de PMH não são usadas no T500. No entanto, era improvável que ficassem no ar. As recomendações típicas sugerem puxar cabos não utilizados, tanto para o circuito de energia quanto para o terra. Lembre-se disso.
Apesar da falta de documentação, a equipe do projeto Coreboot (comparando os circuitos de notebook das séries T60, T40 e mais antigas - onde as funções RINKAN / PMH ainda estavam divididas entre os microcircuitos de menor grau de integração) acumulou algo interessante. O PMH está disponível no espaço de endereço da CPU. Não diretamente, é claro, mas através da CE - mas ainda disponível! UPD: conectado ao ICH através do barramento LPC (baixa contagem de pinos - análogo do ISA). Para elevar ou abaixar a perna PMH, eles usam a seguinte sequência de operações ( 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);
Ou seja, primeiro escrevemos o código de registro PMH no registro EC (mapeado para o espaço de endereço da CPU) e, em seguida, podemos ler ou escrever seu conteúdo. Por exemplo, queremos ativar a luz de fundo (pé de 55 PMH): escrevemos no registrador 0x55 bit 2 - tudo é simples.
UPD: colegas do projeto Libreboot consideram improvável o cenário de curto-circuito descrito através do PMH - a proteção atual em RINKAN deveria ter trabalhado a 55mA
Infelizmente, o memtest faz aproximadamente a mesma coisa - lê e grava valores diferentes em diferentes áreas da memória. Teoricamente, o BIOS deve descrever as áreas de memória reservadas para dispositivos de E / S. E o memtest não deve escrever nada lá em baixo - mas ... escreveu! E, aparentemente, em algum momento, ele levantou ou abaixou a perna sem sucesso da PMH. Por conseguinte, através do transistor de pé de saída PMH, o barramento de força VCC3SW foi curto-circuito ao terra ...
O que aconteceu depois? Então RINKAN começou a se aquecer. Como a corrente estava crescendo, o PMH no modo chave a arrastou sem problemas, e o transistor semi-aberto no LDO RINKAN estava piorando. Mas, externamente, isso não se manifestou de forma alguma: em um laptop ligado, ninguém come de uma fonte de baixa potência de 3,3v, e a energia é fornecida por um DC / DC poderoso e especial que fornece os principais barramentos de 3,3 e 5 volts, respectivamente.
Bem, quando o botão liga / desliga foi pressionado, os barramentos principais foram desenergizados. Não havia mais energia no barramento de partida de 3.3v! E o laptop virou abóbora tijolo.
UPD: teoria alternativa (omz + libreboot)
Nos centros de serviços, a tendência de colisão do RINKAN é conhecida. Os colegas do Libreboot argumentam ainda que isso é especialmente verdade para os controladores da Toshiba (e o ROHM será melhor). Consequentemente, o memtest era inocente por todo o caminho e ocorreu uma falha quase simultânea de dois laptops:
Resultados de diagnóstico:
O primeiro laptop é uma placa gráfica dual COR5SOPV3. No barramento VCC3SW em vez de 3,3, apenas 1,2 volts. A resistência à terra é de cerca de 400 ohms. Soldou suavemente e aumentou a saída do conversor de tensão RINKAN. A resistência do barramento aumentou imediatamente para centenas de quilo-ohms. Eles aplicaram tensão de 3.3V de uma fonte externa - a faia ganhou vida.
Conselho em processo de reparoO chip com um adesivo branco é um controlador incorporado, no meio com fios - RINKAN, o último sem adesivos - PMH.

Como resultado, selecionamos um LDO externo de baixa potência (LP2930-3.3), que alimenta o barramento de partida em vez de RINKAN. De acordo com os resultados do teste, verificou-se que a morte clínica adiada deixou uma marca na natureza do dispositivo - o laptop se recusa a ligar se a bateria estiver inserida, mas o adaptador não estiver inserido. Se você deseja ligá-lo - remova a bateria, ligue o adaptador de energia e, depois disso, a bateria poderá ser inserida novamente. Todas as outras funções (carga, duração da bateria, suspensão, etc.) não são problema e é a única maneira de ativar. Eles não se incomodaram - eles decidiram a questão administrativamente: use suspensão ou reinicialização em vez de desligar. O primeiro sofredor teve sorte!
E a segunda - não ... Existe uma placa C5ISOVP com gráficos integrados - não há voltagem no barramento e a resistência ao terra é dezenas de ohms. Depois de arrancar a perna, o VCC3SW não melhorou - a mesma baixa resistência de acordo com o VREGIN20. Eles também o retiraram, ligaram a energia externa ao barramento de partida - viram 3,3 e 5 volts no principal. No entanto, apesar do início encorajador, os sinais de economia de energia não apareceram na saída PMH / RINKAN e o sistema não pôde iniciar. Aparentemente, a lógica interna dos microcircuitos está danificada e isso não é tratado ...
É muito provável que o memtest possa matar laptops dessa maneira, da série T6x à série T420 / 520, inclusive. A partir do T430 / 530, o modo de comunicação com a CE foi alterado e a gravação nos registros PMH é impossível em princípio. Talvez apenas determinadas versões de firmware do BIOS ou EC sejam afetadas. Um relatório de bug foi escrito para os mantenedores de pacotes debian, talvez eles possam encontrar algo com o upstream ...
O motivo exato da falha dos dois laptops após o início do teste é desconhecido. Um experimento que pode determinar se o memtest causa um consumo de corrente fora do design do barramento de força inicial está planejado, mas a data ainda não foi determinada. Relataremos os resultados adicionalmente.
Ao iniciar o memtest nos laptops da série Lenovo T6x, inclusive o T420 / 520, você deve considerar os riscos e benefícios potenciais desse evento. Caso você execute o teste e ele não causou (ou fez) o laptop ficar empedrado ou desligado - por favor, escreva um comentário no comentário indicando o modelo do laptop e o tempo de execução do teste.
Isso é tudo - boa sorte!