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");
>
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help