Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Alguns firmware têm um temporizador watchdog que pode detectar travas de firmware. Alguns LE (drivers IHV) têm lógica para detectar se o firmware não está progredindo. A UE permite que o LE indique essas condições.
A indicação deve estar na porta do Adaptador (por exemplo, portid=0xFFFF). Por padrão, as indicações disparam o LE para executar o procedimento de recuperação de redefinição completa : chamar diagnosticar, coletar informações de depuração e solicitar PLDR.
Quando o temporizador le ou firmware watchdog detecta que o firmware parou, as expectativas da UE são as seguintes.
Se estiver em D0,
- O LE indica NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
- No retorno da indicação, o LE retorna (se houver) o comando WDI paralisado.
- A UE inicia o procedimento de Recuperação de Redefinição (RR).
Se estiver no Dx, isso só poderá ocorrer com o firmware detectado.
- O firmware gera interrupção de ativação.
- Ao receber um comando D0, indica o motivo da ativação do motivo pelo qual o firmware parou.
- Depois de retornar d0 OID WDI, o LE indica NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
- Conclua o procedimento como em D0: 1a, 1b e 1c.
Detecção de travamento no Dx
É possível que o firmware pare o progresso no Dx. Nesse caso, Dx é D3Hot para PCIe NIC e D2 para USB e SDIO. A NIC está armada para ativar e espera-se que mantenha a associação de ponto de acesso de forma autônoma ou verifique o NLO se não estiver associado.
Quando a NIC está em Dx, a comunicação com o host é bloqueada porque o barramento pode estar no estado de desligar. Portanto, o LE não é capaz de detectar firmware paralisado. O firmware em si precisa detectar a condição e elevar a linha de ativação (se a parte de ativação do código ainda estiver ativa) para trazer a pilha para D0, indiretamente por meio de ACPI ou conclusão de barramento, wait_wake_irp NDIS. Devido a isso, o NDIS define D0 como a NIC.
O firmware declara a ativação para tal condição. O LE deve indicar um motivo de ativação para a parada de firmware. O motivo da ativação WDI_WAKE_REASON_CODE_FIRMWARE_STALLED é definido como uma enumeração com os outros motivos de ativação.
Para que a Recuperação de Redefinição funcione nesse cenário, pelo menos duas partes do firmware ainda devem funcionar.
- O código de detecção de travamento.
- O código para declarar a interrupção de ativação.
Se houver uma falta de um deles, o lado host não saberá se o firmware está paralisado e o RR não acontece. Esse cenário não faz parte da meta de design.
Recuperação de redefinição disparada pelo módulo do sistema operacional
Isso é informativo para IHVs. Além das travas detectadas por UE e LE, outros componentes do sistema operacional podem detectar travas e/ou disparar a UE para invocar o procedimento de Recuperação de Redefinição. Atualmente, o componente wlansvc do modo de usuário no Windows 10 pode solicitar uma Recuperação de Redefinição para UE quando detecta uma conexão com a conectividade com a Internet e, posteriormente, perde a capacidade de acessar um servidor DNS sem desassociação por algum tempo. No futuro, a Microsoft poderá encontrar casos adicionais para disparar uma Recuperação de Redefinição para aprimorar as experiências do usuário final.