Index: en_US.ISO8859-1/htdocs/projects/Makefile =================================================================== --- en_US.ISO8859-1/htdocs/projects/Makefile +++ en_US.ISO8859-1/htdocs/projects/Makefile @@ -21,6 +21,6 @@ INDEXLINK= projects.html -SUBDIR= acpi busdma ideas mips netperf +SUBDIR= busdma ideas mips netperf .include "${DOC_PREFIX}/share/mk/web.site.mk" Index: en_US.ISO8859-1/htdocs/projects/acpi/Makefile =================================================================== --- en_US.ISO8859-1/htdocs/projects/acpi/Makefile +++ en_US.ISO8859-1/htdocs/projects/acpi/Makefile @@ -1,18 +0,0 @@ -# ACPI project page -# -# $FreeBSD$ - -MAINTAINER= marks - -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif -.if exists(../Makefile.inc) -.include "../Makefile.inc" -.endif - -DOCS= index.xml -DOCS+= completed.xml -DATA= style.css - -.include "${DOC_PREFIX}/share/mk/web.site.mk" Index: en_US.ISO8859-1/htdocs/projects/acpi/completed.xml =================================================================== --- en_US.ISO8859-1/htdocs/projects/acpi/completed.xml +++ en_US.ISO8859-1/htdocs/projects/acpi/completed.xml @@ -1,449 +0,0 @@ - - - - - -]> - - - - &title; - - $FreeBSD$ - - - - -

Completed Project List

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Add methods to get/set ints - acpi_EvaluateInteger only gets an int. Update api to get/set - so that every consumer does not end up defining their own.&a.marks;
Fix getenv_string. Does not seem to work in - sys/dev/acpica/Osd/OsdTable.c. Turned out the name - should not end in "_name".&a.marks; and &a.grehan;
acpi_video manpage. See appendix B of the ACPI 2.0 - spec for info on what this driver does as well as look - at the sysctls it exports.&a.marks;
fd0 not working on Intel boards. The floppy device did not - work due to the _CRS object on some systems splitting the IO - port into three 2 port resources (6 ports total). Fix committed - to sys/isa/fd.c to work with this type of resource - specification.&a.njl; and &a.jhb;
Some BIOSs use 0x3f2-0x3f5 as the port range - -- the real range is 0x3f0-0x3f5, 0x3f7. Workaround - committed.&a.imp;
ACPI Debugging Handbook Page -- - Introduction to ACPI for new users as well as how to assist - us in fixing problems as they arise.&a.njl; and &a.trhodes;
acpi_video driver (njl) -- Imported.&a.njl; and Taku YAMAMOTO (driver author)
BIOS blacklist -- implement a mechanism and specific - quirks to disable features or ACPI entirely on known - broken systems. If a custom DSDT is loaded, do not - check it against the blacklist (since a user may fix - the DSDT without changing the vendor/revision fields.) Add - blacklist option for disabling acpi on certain - systems.&a.njl;
acpi_toshiba man page -- Driver submitted by Hiroyuki Aizu - and committed. All it needs is someone to try it out and - document the sysctls.&a.philip;
Invalid PBLK length workaround -- Accept a PBLK of length 5 - (spec says 6). Only enable C2 for this though. Some people - may be using 7 to indicate another C3 state but we do not - support the extra state.&a.njl;
Check EcSpacehandler to make sure it is correct for - multi-byte access. Found off-by-one in that the last - address (0xff) could never be written or read. 
Pick a default MS OS to claim -- Too much ASL depends on - a MS OS string so we should masquerade as the most accurate - one. Picked Win2k™ ("Microsoft Windows NT™"), - then reverted once _OSI support was available. ACPI-CA still - has a default of "Microsoft Windows NT™".&a.njl;
Handle DPF resource types in acpi_pcib.c -- Some _PRS values - are bracketed with start/end dependent function resource - descriptors. Parse/skip them to fix PCI IRQ routing.&a.njl;
acpi_toshiba updates -- Implement support for DSSX which - appears to be the only way to do display switching (other - than acpi_video).&a.njl;
ASUS driver -- Driver for ASUS ACPI extras (hotkeys). - Similar to the acpi4asus.sf.net Linux project.&a.philip;
Fix sysctls for debug layer/level -- setting from usermode - via a sysctl did not work.&a.njl;
Make lid and sleep button sysctls default to - min(supported_states) -- lid switch now defaults to - NONE, sleep button to minimum sleep state available.&a.njl;
newbus attachments for cpu -- Get cpu devices under - newbus so drivers like cpufreq can probe/attach.&a.njl;
Make CPU cx_lowest sysctl more readable -- Use C[1-9] - instead of the index value.&a.njl;
Update EC GLK check -- Use the handle from the table to - read _GLK instead of always defaulting to using the global - lock.&a.njl;
Merge ECDT/EC probe&a.njl;
_INI methods -- run for all devices, not just Device - objects. ACPI-CA now calls _INI for Devices, - ThermalZones and Processors. 
Fix acpidump failing on several systems -- acpidump(8) fails - on some systems. I suspect this may be in how we search low - memory for the RSDP. Changed to only search EBDA (1 KB - pointed to by 16 bit pointer at 0x40E) and high memory - (0xE0000 - 0xFFFFF) according to the spec - (section 5.2.2).&a.njl;
Fix apm compat interface -- Hacked around this in the - userland utility by marking values >= 255 as - "unknown".&a.njl;
Update GPE code to handle general device wake -- Also, - disable GPEs that are not valid when entering a new sleep - state. Without this, GPEs for the lid left enabled on a - Thinkpad™ X22 restart the system after power off. - Add userland interface for enabling device wake (done as - per-device sysctls).&a.njl;
Fix shutdown routines to not poke all the events (causes - auto power on for some people). Workaround is to set - hw.acpi.disable_on_poweroff="0". Now that GPEs are properly - disabled based on _PRW during suspend and poweroff, we can - hopefully remove the call to acpi_Disable() in the poweroff - path. We now handle the reboot case also by hooking - device_shutdown().&a.njl;
Cleanup acpidump/boot EBDA lengths.&a.njl;
Fix acpi_cpu busy refcount -- We no longer use a refcount - but instead avoid doing any housekeeping after re-enabling - interrupts at the end of acpi_cpu_idle(). Otherwise, the - context switch after unmasking ints could disrupt device - state.&a.njl;
Do not print an error message for _PR0 method -- If not - present, do not print an error in switch_consumer.&a.njl;
acpi sysresource probing -- Probe/attach acpi resources - in the acpi bus and then dole it out to children as necessary. - Requires rman(9). Includes more sophisticated handling of - device ordering in scan.&a.njl;
Update ACPI blacklist -- Read entries from various OS's - and add them to our blacklist table.&a.njl;, &a.marks;
Fix general wake code -- remove use of device_t flags as - they may collide with the driver. Use an acpi ivar - instead. Fix for non-acpi devices as well by using a bus - walk routine instead of device_suspend. Add code to turn - on appropriate power resources. Disable EC in shutdown - path.&a.njl;
Fix drivers and the apm compat interface -- Currently, - the apm compat interface expects byte values but the ABI used - is a set of u_ints and an int. Either the apm or acpi battery - drivers (or both) are setting the value to -1, - which results in 0xffffffff being passed back as the current - state. Really, only 255 should be returned in this case. - The apm userland utility marks values >= 255 as "unknown" - to work around this. But really the underlying drivers should - be fixed.&a.imp;
Fix EC timeouts -- move to a sx lock to cover EcWait instead - of a mutex so we can hold it across msleep. This fixed the - timed out errors that occurred occasionally for some - users.&a.njl;
Package all info on how to do an ACPI import -- done and - handed off to &a.marks; for inclusion in the acpi projects - website.&a.njl;
ACPI floppy driver probing -- Add a fdc_acpi_probe method - to enumerate floppies using _FDE, _FDI methods.&a.njl;
Rework ACPI PCI link support -- _DIS all links, ignore - invalid _CRS, ignore _STA, assume _SRS succeeds.&a.njl;
Fix EISA probe not to write to registers. Turns out an - inb actually triggers the boot hang. Patch committed to - only probe the first slot; however, this breaks the Adaptec - VLB adapter (not EISA). &a.gibbs; is fixing that device's - probe. Done.&a.njl;
Giant-free locking -- Remove dependency on Giant.&a.njl;
Add SSDT support to acpidump(8) -- Right now we only dump - the fixed tables and DSDT. Change acpidump(8) to dump the - SSDT tables. It currently concatenates them with the - DSDT.&a.marcel;
Change shutdown path -- do not use smp_rendezvous() since - it acquires a spinlock. Instead, MI code should run the - shutdown path only on the BSP and all other processors should - be halted.&a.peter;
Turn ACPI and PCI devices off or to a lower power state in - suspend and back on again in resume. Override the default of - D3 with the value the BIOS specifies in _SxD, if present. Skip - serial devices (PNP05xx) since they seem to hang when set to - D3 and may require special driver support. Also skip non-type - 0 PCI devices (i.e., bridges) since they don't seem to handle - being powered off.&a.njl;
Giant-free locking.&a.njl;
newbus attachments for cpu — get cpu devices under - newbus so drivers like cpufreq can probe/attach.&a.njl;
Write initial drivers: ICH SpeedStep, ACPI performance, - ACPI throttling, Enhanced SpeedStep, P4 TCC.&a.njl;
Add bus methods/ivars for child attachments to both acpi - and legacy cpu devices&a.njl;
Design sysctl interface.&a.njl;
Design notify interface for Px changes.&a.njl;
Update power_profile to use cpufreq.&a.njl;
Import powerd.&a.njl;
Fujitsu driver -- Driver for Fujitsu laptop extras. Just needs - to be cleaned up (use acpi_UserNotify instead of the signal - stuff) and imported.&a.marks;
IBM Thinkpad extras driver -- Driver for Thinkpad hotkeys.&a.takawata;
Call _S0D on resume (power up?).&a.njl;
Implement the int 10h resume hack that Linux has since we do - not have that yet. It is unclear how effective it is but some - systems do require it.&a.njl;
Check our DWORD access to EC regions, including endianness. - Currently, we treat DWORD access as little-endian, which makes - sense on PCs. It's really not correct to do use access other than - BYTE for EC space but some ASL uses DWORD. Also, we should test - what happens for AnyAccess reads/writes to EC space since some - ASL does this too. The existing implementation seems correct.&a.njl;
Implement passive cooling in ACPI thermal. It should use the - cpufreq interface to cool the processor, based on the various _PSV - settings. Also, we need to implement variable polling intervals - for thermal zones based on both the passive settings and polling - explicitly specified in the ASL.&a.ume;
Fix stray irq 9 on reboot -- - AcpiTerminate -> AcpiEvTerminate unhooks the SCI and then we - get a stray irq. Debug why. Also, disable/ re-enable acpi gives - "SCI already attached". Check flags for AcpiDisable vs. - AcpiTerminate. This looks uncommon and does not cause any problems - so it will be ignored for now.&a.njl;
Add smart battery support -- Smart batteries use the SMBus - to communicate data instead of the embedded controller for - control-method batteries. Newer ACER laptops have this and - it will be needed for battery status on them. This is rather - difficult since it involves interfacing with the SMBus drivers - (likely need some kobj methods for this.)&a.njl;
- - - - Index: en_US.ISO8859-1/htdocs/projects/acpi/index.xml =================================================================== --- en_US.ISO8859-1/htdocs/projects/acpi/index.xml +++ en_US.ISO8859-1/htdocs/projects/acpi/index.xml @@ -1,467 +0,0 @@ - - - - - - -N/A"> -Done"> -In progress"> -Needs testing"> -Not done"> -Unknown"> -]> - - - - &title; - - $FreeBSD$ - - - - -

Contents

- - - -

Description

- -

The acpi driver provides support for the Intel/Microsoft/Compaq/Toshiba - ACPI standard. This support includes platform hardware discovery (superseding - the PnP and PCI BIOS), as well as power management (superseding - APM) and other features. ACPI core support is provided by the ACPI-CA - reference implementation from Intel.

- -

Information on using and debugging ACPI can be found in the - - handbook entry and - man page.

- -

If you are looking for the list of completed projects not located - on this page, it can be found - here.

- - - -

TODO List

- - -

High Priority Tasks

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Task Responsible Last updated Priority Notes
Save/Restore PCI capabilities lists and MSI config space &a.njl; August 3, 2006 &status.wip;  
Investigate disabling the LAPIC timer when using ACPI C2-3 - states. Otherwise, the system hangs and no timer interrupts - occur while idle.   August 3, 2006 &status.new;  
acpi_cpu — Finish - work on CPU driver
_CST re-evaluation &a.njl; December 4, 2004 &status.new; Needs testing/debugging
Fix shared user of a P_BLK (refcount) &a.njl; December 4, 2004 &status.new;  
Disable acpi_cpu taking over idling if only - C1 available &a.njl; December 4, 2004 &status.new; I still want to keep acpi_cpu in the loop on SMP systems - so we should leave this as-is for now.
eject methods — implement eject and dynamic - reprobing of acpi namespace &a.njl; December 4, 2004 &status.untested;  
- - - -

Medium Priority Tasks

- - - - - - - - - - - -
Hotkey/backlight/sound generic driver -- Add a driver - that generalizes the various device-specific ways of - adjusting backlight, sound volume, hotkey support, etc. - It should provide generic sysctls for these and attach to - the hw-specific drivers (acpi_video, acpi_asus, acpi_toshiba, - etc.)     &status.new;  
- - -

Low Priority Tasks

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Implement X suspend/resume notification. Currently, - the X server on FreeBSD is not notified of a suspend. - We explicitly switch to a VTY on syscons before resume - to get the server to save and then restore all the registers. - This works for many systems but not if the display is left in - less initialized at resume than the VTY switch code can handle. - There is an interface (in the X server bsd_apm.c) for doing ioctls - to find out about the suspend. First, check if this file is - built on FreeBSD as it appears to only be built on NetBSD. - Then implement the ioctls in both apm and acpi (on the apm - compat device). - Here is a - patch to help the X file compile. For acpi, we do not want - a user process dying to hold up the suspend process so implement - the notification with a timeout. That is, if the kernel generates - a APM_STANDBY_REQ notification and it doesn't receive a - APM_IOC_STANDBY within say 5 seconds, continue the suspend process. - This is needed for standby when X is not running, for instance, or - when an emergency suspend is generated by a battery going - critical.     &status.new;  
Examine the two video resume hacks (int 0x10, lcall 0xc000). - Linux has begun to test calling the "lcall" VESA reset after - PCI devices (including the video card) have been fully resumed, - including power state set to PS0. This works for many Radeon - cards but fails for others. We could implement this in vm86 - calls from a proper video driver resume method. Investigate - integrate the techniques used by the Radeontool - port in video resume.     &status.new;  
ACPI-CA should really enable GPEs before calling \_WAK. - Currently it does the opposite. This does not match the ACPI - spec where \_WAK should be called after the system is up - and running (\_BFS is what should be called as soon as - possible after waking.)     &status.new;  
Potential ASL bug: We may need to work around some systems - having the S3 object listed under the LPC bus device (PNP0A03) - instead of root (\). This is ACPI-CA's responsibility.     &status.new;  
For systems that fail to power off, try using the suspend code - (acpi_SetSleepState) instead.     &status.new;  
See if we can enable EC access early even if an ECDT is not - present. The _INI method for some ECs accesses the EC region - even though _REG has not been called since the region is not - initialized yet. It is likely that Windows hard-codes the EC - resources and enables the region before initializing the device - even though this is not allowed by the spec.     &status.new;  
Implement reset register functionality for rebooting systems - that lack a keyboard controller (see ACPI v2 FADT->ResetRegister).     &status.new;  
Be sure not to try to disable ACPI on systems that do not have - SMI_CMD or ACPI_ENABLE/DISABLE values in the FADT. The ia64 machines - specify ACPI-only (no legacy mode) so they have 0 for these - values and we should not enable/disable ACPI on them. Doing so - gives a "failed to switch modes" warning but no real problems, - apparently.     &status.new;  
Check our implementation of AcpiOsDerivePciId(). - It is probably not quite right. Compare against Linux.     &status.new;  
Run instructions on cpu0 for suspend/resume. We currently do - this for shutdown in kern_shutdown.c:boot(). This will also be - required for SMP cpufreq drivers that set the frequency via a - CPU-specific MSR.     &status.new;  
Traverse local reference (scope) types in namespace when probing - devices.     &status.new;  
Implement support for _PRS/_SRS and dependent functions. - This will allow serial port configuration to occur.     &status.new;  
Add EC burst mode -- Code was written before to add burst mode to - the EC. Unfortunately, it had to be disabled since it did not - appear to work on all systems. Perhaps on some systems - do not function correctly without burst mode, so it will be added - back with some logic to fallback if it fails.     &status.new;  
Intel firmware seems to describe the PCI root bridge where - chipset configuration space lives with _STA=="0x8". The spec - says this means "functional, but not present". The current - code ignores things that are "not present" - ( - msg). It is suggested that this should be handled by not - attaching a driver to the device (i.e. bridge) but probe its children. - Present on Big Sur and Bull systems.     &status.new;  
Re-work device wake setup to not be recursive. - The acpi_wake_sysctl_walk() syscall has to call itself to - handle child devices on other busses (PCI). This should - probably be changed to be a DEVMETHOD.     &status.new;  
device_power -- Add a "power" argument to devctl(8) - that allows a device to be set into various low power or - off states.     &status.new;  
device_eject -- Add a devctl(8) program that has an - "eject" argument. Allow users to eject various object - names ("/dev/cdrom", "/mnt/flashdrive", "wi0", "pci0:2:0"). - Call the appropriate _EJD and _EJx methods if appropriate. &a.imp;, &a.jhb;, and &a.takawata;   &status.wip;  
suspend to disk -- Implement a suspend/resume from disk - mechanism. Possibly use the dump functions to dump pages to - disk, then use ACPI to put the system in S4 or power-off. - Resume would require changes to the loader to load the memory - image directly and then begin executing again.     &status.new;  
HP/Toshiba Satellite driver -- Enabling the extra - one-touch/multimedia keys, console blanking, battery and - temperature reporting, etc. Get an idea of what is needed from - the Linux OMKE project - .     &status.new;  
ASL capture bootable CD-R -- Build a set of scripts to - generate a bootable CD-R. It should have a GENERIC kernel - and acpidump/iasl as well as all support libraries. Replace - init with a script such that booting the CD generates an - acpidump -t -d > machine.asl and dmesg > machine.dmesg in - an MFS partition. Then burn this info to a second track on the - CD-R. This will make an easy way to take a batch of CDRWs to - the local computer store, place them in the CDRW drive, boot - FreeBSD and get the ASL.     &status.new;  
ASL Explorer -- Graphical utility for examining the output - of acpidump(8). Contact &a.njl; for info about the design if you - are interested in implementing this.     &status.new;  
Document acpi kernel interfaces -- Document the interfaces - for drivers found in acpivar.h.     &status.new;  
KTR support for ACPI debug messages -- Use the KTR logging - facility instead of printf for ACPI debugging messages. This - would allow more verbose messages and fast dumping.     &status.new;  
Add support for the real-time clock (RTC) to use to wake - or power-on systems at a certain time of day.     &status.new;  
Quiesce USB when no device is attached (see Linux UHCI) -- - this would help such systems use C3 more, saving power with - USB loaded. While at it, fix uhci suspend/resume.     &status.new;  
- - -

References

- - - - - Index: en_US.ISO8859-1/htdocs/projects/acpi/style.css =================================================================== --- en_US.ISO8859-1/htdocs/projects/acpi/style.css +++ en_US.ISO8859-1/htdocs/projects/acpi/style.css @@ -1,38 +0,0 @@ -BODY { -} - -BODY TD { - font-size: 13px; -} - -BODY SMALL { - width: 615px; - font-size: 11px; -} - -.heading { - font-size: 15px; - background-color: #cbd2ec; -} - -.section { - font-size: 15px; - font-weight: bold; - background-color: #e7e9f7; -} - -.notes { - font-size: 13px; - font-weight: normal; -} - -.main { - width: 615px; - height: auto; - text-align: justify; -} - -.list { - width: 550px; - height: auto; -}