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.
Jika di D0,
- LE menunjukkan NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
- Pada pengembalian dari indikasi, LE mengembalikan (jika ada) perintah WDI yang terhenti.
- UE memulai prosedur Reset Recovery (RR).
Jika di Dx, ini hanya dapat terjadi dengan kios yang terdeteksi firmware.
- Firmware menimbulkan gangguan bangun.
- Saat menerima perintah D0, menunjukkan alasan bangun mengapa firmware terhenti.
- Setelah mengembalikan D0 WDI OID, LE menunjukkan NDIS_STATUS_WDI_INDICATION_FIRMWARE_STALLED.
- Selesaikan prosedur seperti di D0: 1a, 1b, dan 1c.
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.
- Kode deteksi gantung.
- 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.
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.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk