Bagikan melalui


Deteksi LE hang

Beberapa firmware memiliki timer pengawas yang dapat mendeteksi firmware macet. Beberapa driver IHV (LE) memiliki logika untuk mendeteksi apakah firmware tidak membuat kemajuan ke depan. UE memungkinkan LE untuk menunjukkan kondisi tersebut.

Indikasi harus berada di port Adapter (misalnya, portid=0xFFFF). Secara default, indikasi memicu LE untuk melakukan prosedur pemulihan reset penuh -- memanggil diagnosis, mengumpulkan informasi debug, dan meminta PLDR.

Ketika timer pengawas LE atau firmware mendeteksi bahwa firmware terhenti, harapan dari UE adalah sebagai berikut.

  1. Jika di D0,

    1. LE menunjukkan NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
    2. Pada pengembalian dari indikasi, LE mengembalikan (jika ada) perintah WDI yang terhenti.
    3. UE memulai prosedur Reset Recovery (RR).
  2. Jika di Dx, ini hanya dapat terjadi dengan kios yang terdeteksi firmware.

    1. Firmware menimbulkan gangguan bangun.
    2. Saat menerima perintah D0, menunjukkan alasan bangun mengapa firmware terhenti.
    3. Setelah mengembalikan D0 WDI OID, LE menunjukkan NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
    4. Selesaikan prosedur seperti di D0: 1a, 1b, dan 1c.

deteksi wdi le hang.

Deteksi macet di Dx

Ada kemungkinan bahwa firmware menghentikan kemajuan di Dx. Dalam hal ini, Dx adalah D3Hot untuk PCIe NIC dan D2 untuk USB dan SDIO. NIC dipersenjatai untuk bangun dan diharapkan untuk mempertahankan asosiasi titik akses secara otonom, atau memindai NLO jika tidak terkait.

Ketika NIC berada di Dx, komunikasi ke host diblokir karena bus bisa dalam keadaan mati listrik. Oleh karena itu, LE tidak dapat mendeteksi firmware yang terhenti. Firmware itu sendiri harus mendeteksi kondisi dan menaikkan garis bangun (jika bagian bangun kode masih hidup) untuk membawa tumpukan ke D0, secara tidak langsung melalui ACPI atau penyelesaian bus, NDIS wait_wake_irp. Karena ini, NDIS menetapkan D0 ke NIC.

Firmware menegaskan bangun untuk kondisi seperti itu. LE harus menunjukkan alasan bangun untuk kios firmware. Alasan bangun WDI_WAKE_REASON_CODE_FIRMWARE_STALLED didefinisikan sebagai enum dengan alasan bangun lainnya.

Agar Reset Pemulihan berfungsi dalam skenario ini, setidaknya dua bagian firmware harus tetap berfungsi.

  1. Kode deteksi gantung.
  2. Kode untuk menegaskan gangguan bangun.

Jika ada kekurangan salah satu, sisi Host tidak tahu apakah firmware terhenti dan RR tidak terjadi. Skenario ini bukan bagian dari tujuan desain.

deteksi wdi hang di dx.

Modul OS memicu pemulihan reset

Ini adalah informasi untuk IHV. Selain UE dan LE yang terdeteksi macet, komponen OS lainnya dapat mendeteksi macet dan/atau memicu UE untuk memanggil prosedur Reset Recovery. Saat ini, komponen wlansvc mode pengguna di Windows 10 dapat meminta Reset Recovery ke UE ketika mendeteksi koneksi dengan konektivitas Internet dan kemudian kehilangan kemampuan untuk mengakses server DNS tanpa disasosiasi selama beberapa waktu. Di masa mendatang, Microsoft mungkin menemukan kasus tambahan untuk memicu Pemulihan Reset untuk meningkatkan pengalaman pengguna akhir.

NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED

WDI_TLV_INDICATION_WAKE_REASON