Hi, I am happy to announce the first public version of my PCISLEEP
tool. You can get it at:


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-).


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

Reply via email to