On 17/06/2011 20:44, Gilles Chanteperdrix wrote:
On 06/17/2011 09:00 PM, Gilles Chanteperdrix wrote:
On 06/17/2011 04:05 PM, Jakub Nowacki wrote:


I've added my ID to the table in smi.c file as:

{PCI_DEVICE(PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_5_3400_SERIES_LPC_MIN+0xa)}

Everything complies OK but during the startup I get message:

[    2.137733] Xenomai: SMI-enabled chipset found
[    2.137744] Xenomai: SMI workaround failed!

Should I do something extra apart from adding it to the table?

There are two reasons why it may not work:
- the way to globally disable SMIs has changed with the chipset version
you are using;
- the BIOS of your PC locks the SMI disabling bit.

So, the next step is to check the chipset datasheet.

 From your first mail, the chipset you use is a Q57, the datasheet says
that the GLB_SMI_EN is still there. So, what you should do is check
whether the SMI_LOCK bit is set. The following (untested) patch should
print the lock bit value:

diff --git a/ksrc/arch/x86/smi.c b/ksrc/arch/x86/smi.c
index d80b14b..97e6774 100644
--- a/ksrc/arch/x86/smi.c
+++ b/ksrc/arch/x86/smi.c
@@ -157,7 +157,8 @@ void rthal_smi_disable(void)
         mask_bits(rthal_smi_masked_bits, rthal_smi_en_addr);

         if (inl(rthal_smi_en_addr)&  rthal_smi_masked_bits)
-               printk("Xenomai: SMI workaround failed!\n");
+               printk("Xenomai: SMI workaround failed!, BIOS lock: d\n",
+                      !!(inl(rthal_smi_en_addr + 0xA0 - SMI_CTRL_ADDR)&  (1<<  
4)));
         else
                 printk("Xenomai: SMI workaround enabled\n");


You were faster. Thanks! Sorry for slight cross posting. I have this machine at work so I probably test it on Monday.

Cheers,

Jakub

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to