Hi, I am happy to announce the first public version of my PCISLEEP tool. You can get it at:
http://www.coli.uni-sb.de/~eric/stuff/soft/pcisleep-21jan2005.zip Functions of this (2.5-3.5 kB / 1000 lines NASM) new creation: - /L mode shows a (mostly numeric) PCI device listing, including information about bridges and power management capabilities, as well as a human-readable description of the device class - /S mode puts all devices which support power management idle or halted states into those low-energy states and waits for a key press. Then it returns the devices to normal on state... - /V mode works as /S mode, but it also saves the full PCI (or AGP) config state of the active VGA card (I tried to make this work on multi-VGA systems, too) and completely suspends the VGA card (if D3 mode supported by power management for it). Plus it activates boring DPMS monitor off energy saving screen saver. When you press a key, the PCI config state is restored, the VGA BIOS is called (will look as if you had rebooted) and the monitor turned on again The /L (listing) mode shows a quick overview of your devices, but of course lspci -vv would show up to 20 lines per device while my tool shows only 1 line per device... Tyler sent a sample output: ... Fields: bus.device(.function) [vendor:model] classcode(/iface) class [details] Interfaces: 10 is OHCI for USB/FireWire, 20 is EHCI for USB 2.0, etc. Bridges: [00->02(02)] means 'from bus 0 to bus 2' Power Management: [D1+D2-D3+] means 'D1 and D3 supported' (D1 is idle, D2 is halt, D3 is soft-off) BusDevF vend:type class description ... 00.00 [8086:7180] 0600 CPU host bridge 00.01 [8086:7181] 0604 PCI bridge [00->01(01)] 00.0f [9004:6078] 0100 SCSI controller [D1-D2-D3+] 00.10 [0e11:b011] 0280 network 00.14.0 [8086:7110] 0601 ISA bridge 00.14.1 [8086:7111] 0101/80 IDE controller 00.14.2 [8086:7112] 0c03 USB controller 00.14.3 [8086:7113] 0680 southbridge / ACPI? 01.00 [102b:051f] 0300 VGA graphics PCI bus scan done. As you can see, only his SCSI controller supports power management, but because D3 mode requires re-loading the BIOS / drivers on return to awake D0 mode, PCISLEEP would actually have NO energy saving effect on his computer (D3 is only used for VGA, and his VGA does not support any Dn mode except D0, on). The vendor id 8086 is Intel. Very creative of those guys ;-). QUESTIONS: Does the /V option work for you on a system for which the VGA graphics do support D3? Or do you get a crash and have to reboot to get control over the screen output again? Do you think that the /S option really saves energy on your system (only works if D1 or D2 is supported by some of your devices in class 0{1,2,3,4,7}xx, as PCISLEEP does not dare to put other devices to sleep...)? Does PCISLEEP fail to list some of your devices which other tools, like Linux lspci, do properly detect? Should I change some of the class descriptions / are some class descriptions too vague for your system? Because PCISLEEP is quite big, I would prefer not to make it part of FDAPM... Notice that there is no "cache flush" or "disk spindown" in PCISLEEP, but you can always run FDAPM before PCISLEEP for that. Enjoy, and please test :-). PS: I uploaded a small FDAPM upload - Fox told me that APM 1.1 is enough to power off a system, while FDAPM before 21jan2005 insisted on having APM 1.2 for that. A far more interesting QUESTION: Can you power off systems with http://www.coli.uni-sb.de/~eric/pnpoff.zip (temporary location, simple tool without cache flush...) for which FDAPM fails to power them off? I am in particular interested in Athlon systems with a BIOS which has no APM support. PnPOFF uses PnP BIOS calls, but first tests indicate that only BIOSes which support APM anyway support the used Power Off message of PnP BIOS - so adding PNPOFF to FDAPM might be pointless. PPS: Check www.oldskool.org/pc/throttle/ and home.arcor.de/g.s/ scsispdn for two other interesting tools, ACPI CPU clock throttling and SCSI spin down (the latter requires ASPI drivers). By the way, tssc.de has DOS drivers for things like ATA/IDE drives on all kinds of modern busses, like PCMCIA and FireWire, but their stuff is quite non-cheap. Found their site because they have Win3.x PCI tools as well. ACPI is very complex, about 70k for the parser/vm, but simple power management (e.g. power off (S5) and standby (S1) and suspend (S3/S4) and throttling require no big parsing of data structures, but I have ZERO idea how much of Sn mode is done by BIOS - e.g. S4 suspend to disk is usually not done by BIOS... And where is P_CNT / P_BLK throttle reg? At PM control reg + 10h maybe? THROTTLE uses PCI tables to find P_CNT... Hints and testers wanted!) ... should be possible without too much hassle. ACPI votes please X-). Eric ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user