簡體   English   中英

我應該如何讀寫APIC寄存器“ APIC_ICR”?

[英]How should I read or write APIC register “APIC_ICR”?

這是代碼:

static int __init test3_init(void)
{
   uint64_t v,i;
   for (i=0;i<10;i++)
   {
       v= native_x2apic_icr_read();
       printk("v=%llx\n",v);
   }
   return 0;
}

結果如下:

[ 6658.458919] v=9a557fd8
[ 6658.458925] v=1d
[ 6658.458928] v=17
[ 6658.458930] v=17
[ 6658.458932] v=17
[ 6658.458935] v=17
[ 6658.458937] v=17
[ 6658.458939] v=17
[ 6658.458942] v=17
[ 6658.458944] v=17

為什么連續讀取該寄存器的值看起來像這樣。 前兩個不同,但其余相同。

我的最終目標是在此寄存器中重置APIC_DM_NMI(0x00400),但是如果該值不一致,那么重置該位有什么意義呢? 有人告訴我,重置此位APIC_DM_NMI可以從APIC啟用NMI,我不知道,我完全是新手。 如果有人可以提供有關此MSR的任何信息,以及如何正確操作它,將不勝感激。

謝謝。

我以某種方式認為穩定值(即0x17)似乎是一個更“正常”的值。 這些輸出可以重復嗎? 我的意思是,前兩個總是不同的,並且穩定地從3開始?

這是Pentium處理器系統體系結構(第395頁)中ICR寄存器的描述,我對閱讀本指南沒有任何注意。 在此處輸入圖片說明

僅供參考,這是我從演講筆記中找到的ICR寄存器位規范: ICR高32位ICR低32位

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM