Verificação de bug 0xA5: ACPI_BIOS_ERROR
A verificação de bug ACPI_BIOS_ERROR tem um valor de 0x000000A5. Essa verificação de bug indica que o BIOS de Interface de Energia e Configuração Avançada (ACPI) do computador não é totalmente compatível com a especificação de ACPI.
Importante
Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul enquanto estava usando o computador, confira Solucionar problemas de erros de tela azul.
Parâmetros de ACPI_BIOS_ERROR
O Parâmetro 1 indica o tipo da incompatibilidade. O significado dos outros parâmetros depende do valor do Parâmetro 1.
Se a incompatibilidade do BIOS estiver relacionada ao Plug and Play (PnP) ou ao gerenciamento de energia, os parâmetros a seguir serão usados.
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|---|
0x01 |
deviceExtension da ACPI |
ResourceList da ACPI |
0: Nenhuma lista de recursos foi encontrada 1: Nenhum recurso de IRQ é encontrado na lista |
A ACPI não pode localizar o vetor de Interrupção de Controle do Sistema (SCI) nos recursos que são transferidos para ele quando a ACPI é iniciada. |
0x02 |
(Veja a tabela mais adiante nesta página.) |
|||
0x03 |
O objeto ACPI que estava sendo executado |
O valor retornado do interpretador |
O nome do método de controle (no formato ULONG) |
A ACPI tentou executar um método de controle ao criar extensões de dispositivo para representar o namespace ACPI, mas esse método de controle falhou. |
0x04 |
A extensão ACPI à qual _PRW pertence |
Um ponteiro para o método |
O DataType retornado (veja Amli.h) |
A ACPI avaliou um _PRW e esperava encontrar um inteiro como um elemento do pacote. |
0x05 |
A extensão ACPI à qual _PRW pertence |
Um ponteiro para o _PRW |
O número de elementos no _PRW |
A ACPI avaliou um _PRW e o pacote que voltou não continha pelo menos dois elementos. A especificação de ACPI requer que dois elementos estejam sempre presentes em um _PRW. |
0x06 |
A extensão ACPI à qual _PRx pertence |
Um ponteiro para o _PRx |
Um ponteiro para o nome do objeto a ser procurado |
A ACPI tentou encontrar um objeto nomeado, mas não conseguiu. |
0x07 |
A extensão ACPI à qual o método pertence |
Um ponteiro para o método |
O DataType retornado (veja Amli.h) |
A ACPI avaliou um método e esperava receber um buffer como retorno. No entanto, o método retornou algum outro tipo de dados. |
0x08 |
A extensão ACPI à qual o método pertence |
Um ponteiro para o método |
O DataType retornado (veja Amli.h) |
A ACPI avaliou um método e esperava receber um inteiro como retorno. No entanto, o método retornou algum outro tipo de dados. |
0x09 |
A extensão ACPI à qual o método pertence |
Um ponteiro para o método |
O DataType retornado (veja Amli.h) |
A ACPI avaliou um método e esperava receber um pacote como retorno. No entanto, o método retornou algum outro tipo de dados. |
0x0A |
A extensão ACPI à qual o método pertence |
Um ponteiro para o método |
O DataType retornado (veja Amli.h) |
A ACPI avaliou um método e esperava receber uma cadeia de caracteres como retorno. No entanto, o método retornou algum outro tipo de dados. |
0x0B |
A extensão ACPI à qual _EJD pertence |
O status que o interpretador retorna |
O nome do objeto que a ACPI está tentando encontrar |
A ACPI não pode localizar o objeto ao qual uma cadeia de caracteres _EJD faz referência. |
0x0C |
A extensão ACPI para a qual a ACPI encontrou um dispositivo de encaixe |
Um ponteiro para o método _EJD |
0: BIOS não afirma que o sistema é dockage 1: duplicar extensões de dispositivo para dispositivo de encaixe |
A ACPI fornece informações com falha ou insuficientes para suporte ao dock. |
0x0D |
A extensão ACPI para a qual a ACPI precisa do objeto |
O nome (ULONG) do método que a ACPI procurou |
0: Caso base 1: Conflito |
A ACPI não conseguiu encontrar um método ou objeto necessário no namespace. Esse código de verificação de bug é usado se não há nenhum _HID ou _ADR presente. |
0x0E |
O NS PowerResource para o qual a ACPI precisa do objeto |
O nome (ULONG) do método que a ACPI procurou |
0: Caso base |
A ACPI não conseguiu localizar um método ou objeto necessário no namespace para um recurso de energia (ou entidade diferente de um "dispositivo"). Esse código de verificação de bug é usado se não há _ON, _OFF ou _STA presente para um recurso de energia. |
0x0F |
O buffer atual que a ACPI estava analisando |
A marcação do buffer |
O tamanho especificado do buffer |
A ACPI não pôde analisar o descritor de recurso. |
0x10 |
(Veja a tabela mais adiante nesta página.) |
|||
0x11 |
(Veja a tabela mais adiante nesta página.) |
|||
0x14 |
O buffer atual que a ACPI estava analisando |
A marcação do buffer |
Um ponteiro para uma variável que contém o tamanho ULONGLONG do buffer |
A ACPI não pôde analisar o descritor de recurso. O tamanho excede MAXULONG. |
0x15 |
O contexto ACPI Machine Language (AML) |
1: Falha ao carregar a tabela 2: O objeto de cadeia de caracteres ParameterPath não foi encontrado 3: Falha ao inserir Dados de Parâmetro no objeto da cadeia de caracteres ParameterPath 4: Sem memória do sistema |
O código de status NT |
Ocorreu um erro fatal na ACPI ao tentar carregar uma tabela. |
0x16 |
Um ponteiro para o NSOBJ pai |
Um ponteiro para o objeto de namespace da ACPI filho ilegal |
Reserved |
Ocorreu um erro fatal na ACPI ao processar um xSDT. Um objeto foi declarado como filho de um pai que não pode ter filhos. |
Se ocorrer uma falha de roteamento de interrupção ou incompatibilidade, os parâmetros a seguir serão usados.
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|---|
0x2001 |
InterruptModel (inteiro) |
O valor retornado do interpretador |
Um ponteiro para o método de controle PIC |
A ACPI tentou avaliar o método de controle PIC, mas falhou. |
0x10001 |
Um ponteiro para o objeto de dispositivo |
Um ponteiro para o pai do objeto de dispositivo |
Um ponteiro para o objeto _PRT (Veja a seção Comentários a seguir) |
A ACPI tentou executar um roteamento de interrupção, mas falhou. |
0x10002 |
Um ponteiro para o objeto de dispositivo |
Um ponteiro para o nome da cadeia de caracteres que a ACPI estava procurando, mas não conseguiu encontrar |
Um ponteiro para o objeto _PRT (Veja a seção Comentários a seguir) |
A ACPI não conseguiu encontrar o nó de link referenciado em um _PRT. |
0x10003 |
Um ponteiro para o objeto de dispositivo |
A ID do dispositivo ou o número da função. Esse DWORD é codificado da seguinte forma: bits 5:0 são o número do dispositivo PCI, e bits 8:6 são o número da função PCI |
Um ponteiro para o objeto _PRT (Veja a seção Comentários a seguir) |
A ACPI não conseguiu encontrar um mapeamento no pacote _PRT para um dispositivo. |
0x10005 |
Um ponteiro para o objeto _PRT (Veja a seção Comentários a seguir) |
Um ponteiro para o elemento _PRT atual. (Este ponteiro é um índice no _PRT.) |
A ID do dispositivo ou o número da função. Esse DWORD é codificado da seguinte forma: bits 15:0 são o número da função PCI, e bits 31:16 são o número do dispositivo PCI |
A ACPI encontrou uma entrada no _PRT para a qual a ID da função não é toda F. (O formato genérico de uma entrada _PRT é que o número do dispositivo é especificado, mas o número da função não é.) |
0x10006 |
Um ponteiro para o nó de link. (O método _DIS está ausente neste dispositivo.) |
0 |
0 |
A ACPI encontrou um nó de link, mas não pode desabilitar o nó. (Os nós de link devem ser desabilitados para permitir a reprogramação.) |
0x10007 |
O vetor que não pôde ser encontrado |
0 |
0 |
O _PRT continha uma referência a um vetor que não está descrita na tabela MAPIC da entrada APIC de E/S. |
0x10008 |
O nível de interrupção inválido. |
0 |
0 |
O nível de interrupção SCI da ACPI é inválido. |
0x10009 |
0 |
0 |
0 |
Não foi possível localizar a FADT (Tabela de Descrição ACPI Fixa). |
0x1000A |
0 |
0 |
0 |
Não foi possível localizar o RSDP (Ponteiro de Descrição do Sistema Raiz) ou a XSDT (Tabela de Descrição do Sistema Estendido) |
0x1000B |
A assinatura da tabela ACPI |
Um ponteiro para a tabela ACPI |
0 |
O tamanho da tabela ACPI não é consistente com a revisão da tabela. |
0x1000C |
ID da Revisão |
Índice de Função |
0 |
O método _DSM para interrupções retornou dados malformados. |
0x1000D |
A Extensão ACPI para o dispositivo |
Valor 0: _PRW especificado sem interrupções com capacidade de ativação e pelo menos uma interrupção de GPIO Valor 1: Como há interrupções com capacidade de ativação, o _PRW deve especificar um valor GpeInfo de 0xffffffff |
0 |
Um dispositivo usou as interrupções de GPE e GPIO, o que não é aceito. |
0x1000E |
O Status retornado pela função de validação. | Ponteiro para o caminho do namespace ACPI UNICODE_STRING. |
Ponteiro para a lista de recursos comparada com o SDEV. |
Os recursos SDEV de um dispositivo seguro não correspondem à sua entrada _CRS ou _PRS correspondente. |
Se tiver ocorrido uma falha ou incompatibilidade diversa, os parâmetros a seguir serão usados.
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|---|
0x20000 |
A porta de E/S na Tabela Fixa |
0 |
0 |
A entrada PM_TMR_BLK na Tabela de Descrição ACPI Fixa não aponta para um bloco de temporizador de ACPI em funcionamento. |
Esta tabela descreve problemas de uso de memória em que os parâmetros a seguir são usados.
Parâmetro 1 | Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|---|
0x1000 |
A parte alta do endereço físico da região de memória. |
A parte baixa do endereço físico da região de memória. |
O tamanho da memória que está sendo mapeada. |
Ocorreu um erro fatal na ACPI ao processar uma região de operação de memória. A região de operação de memória tentou mapear a memória que foi alocada para uso do sistema operacional. |
Se o parâmetro 1 for igual a 0x02, o BIOS da ACPI não pôde processar a lista de recursos para os barramentos raiz PCI. Nesse caso, o Parâmetro 3 especifica o problema exato e os parâmetros restantes têm as definições a seguir.
Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|
A extensão ACPI do barramento PCI |
0x0 |
Um ponteiro para o IRP QUERY_RESOURCES |
A ACPI não pode converter a lista de recursos do BIOS no formato adequado. Isso provavelmente representa um erro no procedimento de codificação de lista do BIOS. |
A extensão ACPI do barramento PCI |
0x1 |
Um ponteiro para o IRP QUERY_RESOURCE_REQUIREMENTS |
A ACPI não pode converter a lista de recursos do BIOS no formato adequado. Isso provavelmente representa um erro no procedimento de codificação de lista do BIOS. |
A extensão ACPI do barramento PCI |
0x2 |
0 |
A ACPI encontrou uma lista de recursos vazia. |
A extensão ACPI do barramento PCI |
0x3 |
Um ponteiro para o descritor PNP CRS |
A ACPI não conseguiu encontrar o número de barramento atual no CRS. |
A extensão ACPI do barramento PCI |
Um ponteiro para a lista de recursos para PCI |
Um ponteiro para a tabela de memória E820 |
A lista de recursos que o PCI afirma decodificar se sobrepõe à lista de regiões de memória que a interface do BIOS E820 relata. (Esse tipo de conflito nunca é permitido.) |
Se o Parâmetro 1 for igual a 0x10, o BIOS da ACPI não pôde determinar o mapeamento do estado do sistema para o dispositivo corretamente. Nessa situação, o Parâmetro 3 especifica o problema exato e os parâmetros restantes têm as definições a seguir.
Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|
A extensão ACPI cujo mapeamento é necessário |
0x0 |
O DEVICE_POWER_STATE (isto é "x+1") |
_PRx foi mapeado de volta para um estado S sem suporte. |
A extensão ACPI cujo mapeamento é necessário |
0x1 |
O SYSTEM_POWER_STATE que não pode ser mapeado |
A ACPI não consegue encontrar um estado D para associar ao estado S. |
A extensão ACPI cujo mapeamento é necessário |
0x2 |
O SYSTEM_POWER_STATE que não pode ser mapeado |
O dispositivo informa que é possível ativar o sistema quando o sistema está no estado S, mas o sistema não tem suporte para esse estado S. |
Se o Parâmetro 1 for igual a 0x11, o sistema não pôde entrar no modo ACPI. Nessa situação, o Parâmetro 2 especifica o problema exato e os parâmetros restantes têm as definições a seguir.
Parâmetro 2 | Parâmetro 3 | Parâmetro 4 | Causa |
---|---|---|---|
0x0 |
0 |
0 |
Não foi possível para o sistema inicializar o interpretador de AML. |
0x1 |
0 |
0 |
O sistema não conseguiu localizar a RSDT. |
0x2 |
0 |
0 |
Não foi possível para o sistema alocar estruturas de driver críticas. |
0x3 |
0 |
0 |
Não foi possível para o sistema carregar a RSDT. |
0x4 |
0 |
0 |
Não foi possível para o sistema carregar DDBs. |
0x5 |
0 |
0 |
O sistema não pode conectar o vetor de interrupção. |
0x6 |
0 |
0 |
SCI_EN nunca se torna definido no Registro de Controle PM1. |
0x7 |
Um ponteiro para a tabela que tinha uma soma de verificação inválida |
Revisão do criador |
A soma de verificação da tabela está incorreta. |
0x8 |
Um ponteiro para a tabela que a ACPI não conseguiu carregar |
Revisão do criador |
Falha na ACPI ao carregar DDB. |
0x9 |
Versão do FADT |
0 |
Versão de firmware sem suporte. |
0xA |
0 |
0 |
O sistema não conseguiu localizar a MADT. |
0xB |
0 |
0 |
Não foi possível para o sistema encontrar nenhuma estrutura SAPIC Local válida na MADT. |
Causa
O valor de Parâmetro 1 indica o erro.
Resolução
Se você estiver depurando esse erro, use a extensão !analyze -v. Essa extensão exibe todos os dados relevantes (extensões de dispositivo, nsobjects ou o que quer que seja adequado para o erro específico).
Se você não estiver executando a depuração, esse erro indicará que você precisa obter um novo BIOS. Entre em contato com um fornecedor ou visite a Internet para obter um novo BIOS.
Se você não conseguir obter um BIOS atualizado ou se o BIOS mais recente ainda não for compatível com a ACPI, você poderá desativar o modo ACPI durante a configuração do modo de texto. Para desativar o modo ACPI, pressione a tecla F7 quando for solicitado para você instalar drivers de armazenamento. O sistema não notifica que a tecla F7 foi pressionada, mas desabilita silenciosamente a ACPI e permite que você continue a instalação.
Comentários
Uma tabela de roteamento de PCI (_PRT) é o objeto BIOS da ACPI que especifica como todos os dispositivos PCI estão conectados aos controladores de interrupção. Um computador com vários barramentos PCI pode ter vários _PRTs.
Você pode exibir um _PRT no depurador usando a extensão !acpikd.nsobj junto com o endereço do objeto _PRT como seu argumento.