Subject: viapm && SSE on broken bioses
To: None <tech-kern@netbsd.org>
From: Sergio Jimenez <tripledes@eslack.org>
List: tech-kern
Date: 07/25/2004 08:21:14
Hi, recently I've made a little patch to get vt8231 power
management working throught viapm as OpenBSD has, but like on OpenBSD
I'm getting some weird values and I'd like to know if someone could test
the patch on his system because I'm using it on my laptop and I don't
really know if this mobile has some modifications or this chipset is not
completly compatible with viapm implementation. Any tip will be welcomed
:).
----- pcidevs -----
Index: pcidevs
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pcidevs,v
retrieving revision 1.632
diff -u -r1.632 pcidevs
--- pcidevs 17 Jul 2004 20:04:32 -0000 1.632
+++ pcidevs 22 Jul 2004 18:10:52 -0000
@@ -2679,6 +2679,7 @@
product VIATECH VT8233_AC97 0x3059 VT8233/VT8235 AC-97 Audio Controller
product VIATECH VT6102 0x3065 VT6102 (Rhine II) 10/100 Ethernet
product VIATECH VT82C686A_MC97 0x3068 VT82C686A MC-97 Modem Controller
+product VIATECH VT8231_PWR 0x8235 VT8231 Power Management Controller
product VIATECH VT8233 0x3074 VT8233 PCI-ISA Bridge
product VIATECH VT8366 0x3099 VT8366 (Apollo KT266) CPU-PCI Bridge
product VIATECH VT8653 0x3101 VT8653 (Apollo Pro 266T) CPU-PCI Bridge
----- pcidevs -----
----- viapm.c -----
Index: viapm.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/viapm.c,v
retrieving revision 1.9
diff -u -r1.9 viapm.c
--- viapm.c 1 Jan 2003 00:10:23 -0000 1.9
+++ viapm.c 22 Jul 2004 18:12:44 -0000
@@ -67,7 +67,8 @@
struct pci_attach_args *pa = aux;
if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_VIATECH &&
- PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_VIATECH_VT82C686A_SMB)
+ (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_VIATECH_VT82C686A_SMB ||
+ PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_VIATECH_VT8231_PWR))
return 1;
return 0;
}
----- viapm.c -----
Also, I'm starting to figure out on how get SSE working on this (f***ing)
laptop, because it seems like my bios is quit broken (as many other amd
K7 systems) and it doesn't set the needed bit.
I'm looking on linux kernel sources because they've got a workaround on
this. The main problem is that I've ever tried to work at kernel level so
I am extremely newbie and I'd like some advices.
I'm wondering if identcpu.c is the proper place to work with this and
also I've seen the "amd_family6_probe" function...well I'm really asking
about some points on where to start :)
As you could see here, SSE feature is not set:
cpu0: AMD Athlon XP 1600+ (686-class), 1400.13 MHz, id 0x680
cpu0: features c1cbf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR>
cpu0: features c1cbf9ff<PGE,MCA,CMOV,PAT,PSE36,MPC,MMXX,MMX>
cpu0: features c1cbf9ff<FXSR,3DNOW2,3DNOW>
Thanks in advance for any help :)
Sergio