Index: head/en_US.ISO8859-1/htdocs/projects/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/Makefile +++ head/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: head/en_US.ISO8859-1/htdocs/projects/acpi/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/acpi/Makefile +++ head/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: head/en_US.ISO8859-1/htdocs/projects/acpi/completed.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/projects/acpi/completed.xml +++ head/en_US.ISO8859-1/htdocs/projects/acpi/completed.xml @@ -1,449 +0,0 @@ - - - - - -]> - - -
-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; | -
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.
- - - -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; | -- |
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; | -- |
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; | -- |