Remove the ACPI information from the website.
Moved to https://wiki.freebsd.org/ACPI PR: 216754 Submitted by: avg@ Patch by: carlavilla@ Approved by: bcr@ Differential Revision: https://reviews.freebsd.org/D22903
This commit is contained in:
		
							parent
							
								
									9d3aeccf69
								
							
						
					
					
						commit
						40265d9402
					
				
				
				Notes:
				
					svn2git
				
				2020-12-08 03:00:23 +00:00 
				
			
			svn path=/head/; revision=53706
					 5 changed files with 1 additions and 973 deletions
				
			
		|  | @ -21,6 +21,6 @@ DATA+=	2018-freebsd-gsoc.pdf | |||
| 
 | ||||
| INDEXLINK= projects.html | ||||
| 
 | ||||
| SUBDIR=	 acpi busdma ideas mips netperf | ||||
| SUBDIR=	 busdma ideas mips netperf | ||||
| 
 | ||||
| .include "${DOC_PREFIX}/share/mk/web.site.mk" | ||||
|  |  | |||
|  | @ -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" | ||||
|  | @ -1,449 +0,0 @@ | |||
| <?xml version="1.0" encoding="iso-8859-1"?> | ||||
| <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" | ||||
| "http://www.FreeBSD.org/XML/share/xml/xhtml10-freebsd.dtd" [ | ||||
| <!ENTITY title "FreeBSD ACPI completed projects"> | ||||
| <!ENTITY email 'marks'> | ||||
| <!ENTITY acpi-mail 'freebsd-acpi@FreeBSD.org'> | ||||
| 
 | ||||
| ]> | ||||
| 
 | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
|   <head> | ||||
|       <title>&title;</title> | ||||
| 
 | ||||
|       <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword> | ||||
|     </head> | ||||
| 
 | ||||
|     <body class="navinclude.developers"> | ||||
| 
 | ||||
|     <h2>Completed Project List</h2> | ||||
| 
 | ||||
|     <table class="tblbasic"> | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.marks;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
|         <td>Fix getenv_string.  Does not seem to work in | ||||
| 	  sys/dev/acpica/Osd/OsdTable.c.  Turned out the name | ||||
| 	  should not end in "_name".</td> | ||||
| 	<td>&a.marks; and &a.grehan;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.marks;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl; and &a.jhb;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Some BIOSs use 0x3f2-0x3f5 as the port range | ||||
| 	  -- the real range is 0x3f0-0x3f5, 0x3f7.  Workaround | ||||
| 	  committed.</td> | ||||
| 	<td>&a.imp;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>ACPI Debugging Handbook Page -- | ||||
| 	  Introduction to ACPI for new users as well as how to assist | ||||
| 	  us in fixing problems as they arise.</td> | ||||
| 	<td>&a.njl; and &a.trhodes;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>acpi_video driver (njl) -- Imported.</td> | ||||
| 	<td>&a.njl; and Taku YAMAMOTO (driver author)</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>acpi_toshiba man page -- Driver submitted by Hiroyuki Aizu | ||||
| 	  and committed.  All it needs is someone to try it out and | ||||
| 	  document the sysctls.</td> | ||||
| 	<td>&a.philip;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td> </td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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™".</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>acpi_toshiba updates -- Implement support for DSSX which | ||||
| 	  appears to be the only way to do display switching (other | ||||
| 	  than acpi_video).</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>ASUS driver -- Driver for ASUS ACPI extras (hotkeys). | ||||
| 	  Similar to the acpi4asus.sf.net Linux project.</td> | ||||
| 	<td>&a.philip;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Fix sysctls for debug layer/level -- setting from usermode | ||||
| 	  via a sysctl did not work.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Make lid and sleep button sysctls default to | ||||
| 	  min(supported_states) -- lid switch now defaults to | ||||
| 	  NONE, sleep button to minimum sleep state available.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>newbus attachments for cpu -- Get cpu devices under | ||||
| 	  newbus so drivers like cpufreq can probe/attach.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Make CPU cx_lowest sysctl more readable -- Use C[1-9] | ||||
| 	  instead of the index value.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Update EC GLK check -- Use the handle from the table to | ||||
| 	  read _GLK instead of always defaulting to using the global | ||||
| 	  lock.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Merge ECDT/EC probe</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>_INI methods -- run for all devices, not just Device | ||||
| 	  objects.  ACPI-CA now calls _INI for Devices, | ||||
| 	  ThermalZones and Processors.</td> | ||||
| 	<td> </td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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).</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Fix apm compat interface -- Hacked around this in the | ||||
| 	  userland utility by marking values >= 255 as | ||||
| 	  "unknown".</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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).</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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().</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Cleanup acpidump/boot EBDA lengths.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Do not print an error message for _PR0 method -- If not | ||||
| 	  present, do not print an error in switch_consumer.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Update ACPI blacklist -- Read entries from various OS's | ||||
| 	  and add them to our blacklist table.</td> | ||||
| 	<td>&a.njl;, &a.marks;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.imp;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Package all info on how to do an ACPI import -- done and | ||||
| 	  handed off to &a.marks; for inclusion in the acpi projects | ||||
| 	  website.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>ACPI floppy driver probing -- Add a fdc_acpi_probe method | ||||
| 	  to enumerate floppies using _FDE, _FDI methods.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Rework ACPI PCI link support -- _DIS all links, ignore | ||||
| 	  invalid _CRS, ignore _STA, assume _SRS succeeds.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Giant-free locking -- Remove dependency on Giant.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.marcel;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.peter;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	 <td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Giant-free locking.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>newbus attachments for cpu — get cpu devices under | ||||
| 	  newbus so drivers like cpufreq can probe/attach.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Write initial drivers: ICH SpeedStep, ACPI performance, | ||||
| 	  ACPI throttling, Enhanced SpeedStep, P4 TCC.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Add bus methods/ivars for child attachments to both acpi | ||||
| 	  and legacy cpu devices</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Design sysctl interface.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Design notify interface for Px changes.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Update power_profile to use cpufreq.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Import powerd.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Fujitsu driver -- Driver for Fujitsu laptop extras. Just needs | ||||
| 	  to be cleaned up (use acpi_UserNotify instead of the signal | ||||
| 	  stuff) and imported.</td> | ||||
| 	<td>&a.marks;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>IBM Thinkpad extras driver -- Driver for Thinkpad hotkeys.</td> | ||||
| 	<td>&a.takawata;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>Call _S0D on resume (power up?).</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.ume;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
| 
 | ||||
|       <tr> | ||||
| 	<td>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.)</td> | ||||
| 	<td>&a.njl;</td> | ||||
|       </tr> | ||||
|     </table> | ||||
| 
 | ||||
| 
 | ||||
|   </body> | ||||
| </html> | ||||
|  | @ -1,467 +0,0 @@ | |||
| <?xml version="1.0" encoding="iso-8859-1"?> | ||||
| <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN" | ||||
| "http://www.FreeBSD.org/XML/share/xml/xhtml10-freebsd.dtd" [ | ||||
| <!ENTITY title "FreeBSD ACPI project"> | ||||
| <!ENTITY email 'marks'> | ||||
| <!ENTITY acpi-mail 'freebsd-acpi@FreeBSD.org'> | ||||
| 
 | ||||
| <!-- Status levels --> | ||||
| <!ENTITY status.na "<font xmlns='http://www.w3.org/1999/xhtml' color='green'>N/A</font>"> | ||||
| <!ENTITY status.done "<font xmlns='http://www.w3.org/1999/xhtml' color='green'>Done</font>"> | ||||
| <!ENTITY status.wip "<font xmlns='http://www.w3.org/1999/xhtml' color='blue'>In progress</font>"> | ||||
| <!ENTITY status.untested "<font xmlns='http://www.w3.org/1999/xhtml' color='orange'>Needs testing</font>"> | ||||
| <!ENTITY status.new "<font xmlns='http://www.w3.org/1999/xhtml' color='red'>Not done</font>"> | ||||
| <!ENTITY status.unknown "<font xmlns='http://www.w3.org/1999/xhtml' color='red'>Unknown</font>"> | ||||
| ]> | ||||
| 
 | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
|   <head> | ||||
|       <title>&title;</title> | ||||
| 
 | ||||
|       <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">$FreeBSD$</cvs:keyword> | ||||
|     </head> | ||||
| 
 | ||||
|     <body class="navinclude.developers"> | ||||
| 
 | ||||
|     <h2>Contents</h2> | ||||
|     <ul> | ||||
|       <li><a href="#description">Description</a></li> | ||||
|       <li><a href="#todo-list">TODO List</a></li> | ||||
|       <li><a href="#platform-status">Platform Support Status</a></li> | ||||
|       <li><a href="#references">References</a></li> | ||||
|     </ul> | ||||
| 
 | ||||
|     <a name="description"></a> | ||||
|     <h2>Description</h2> | ||||
| 
 | ||||
|     <p>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.</p> | ||||
| 
 | ||||
|     <p>Information on using and debugging ACPI can be found in the | ||||
|       <a href="/doc/en_US.ISO8859-1/books/handbook/acpi-debug.html"> | ||||
|       handbook entry</a> and | ||||
|       <a href="&cgibase;/man.cgi?query=acpi&sektion=4&format=html">man page</a>.</p> | ||||
| 
 | ||||
|     <p>If you are looking for the list of completed projects not located | ||||
|       on this page, it can be found | ||||
|       <a href="completed.html">here</a>.</p> | ||||
| 
 | ||||
| 
 | ||||
|     <a name="todo-list"></a> | ||||
|     <h2>TODO List</h2> | ||||
| 
 | ||||
|     <a name="high-priority"></a> | ||||
|     <h3>High Priority Tasks</h3> | ||||
| 
 | ||||
|     <table class="tblbasic"> | ||||
|       <thead> | ||||
| 	<tr> | ||||
| 	  <th> Task </th> | ||||
| 	  <th> Responsible </th> | ||||
| 	  <th> Last updated </th> | ||||
| 	  <th> Priority </th> | ||||
| 	  <th> Notes </th> | ||||
| 	</tr> | ||||
|       </thead> | ||||
| 
 | ||||
|       <tbody> | ||||
| 	<tr> | ||||
| 	  <td> Save/Restore PCI capabilities lists and MSI config space </td> | ||||
|           <td> &a.njl; </td> | ||||
| 	  <td> August 3, 2006 </td> | ||||
| 	  <td> &status.wip; </td> | ||||
| 	  <td>   </td> | ||||
|         </tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Investigate disabling the LAPIC timer when using ACPI C2-3 | ||||
| 	    states.  Otherwise, the system hangs and no timer interrupts | ||||
| 	    occur while idle.</td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> August 3, 2006 </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
|       </tbody> | ||||
| 
 | ||||
|       <tbody> | ||||
| 	<tr> | ||||
| 	  <th scope="rowgroup" colspan="0"> <em>acpi_cpu — Finish | ||||
| 	    work on CPU driver</em> </th> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> _CST re-evaluation </td> | ||||
|           <td> &a.njl; </td> | ||||
| 	  <td> December 4, 2004 </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td> Needs testing/debugging </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Fix shared user of a P_BLK (refcount) </td> | ||||
|           <td> &a.njl; </td> | ||||
| 	  <td> December 4, 2004 </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Disable acpi_cpu taking over idling if only | ||||
| 	    C1 available </td> | ||||
|           <td> &a.njl; </td> | ||||
| 	  <td> December 4, 2004 </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td> I still want to keep acpi_cpu in the loop on SMP systems | ||||
| 	    so we should leave this as-is for now. </td> | ||||
| 	</tr> | ||||
|       </tbody> | ||||
| 
 | ||||
|       <tbody> | ||||
| 	<tr> | ||||
| 	  <td> eject methods —  implement eject and dynamic | ||||
| 	    reprobing of acpi namespace </td> | ||||
|           <td> &a.njl; </td> | ||||
| 	  <td> December 4, 2004 </td> | ||||
| 	  <td> &status.untested; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
| 
 | ||||
| 
 | ||||
|     <a name="medium-priority"></a> | ||||
|     <h3>Medium Priority Tasks</h3> | ||||
| 
 | ||||
|     <table class="tblbasic"> | ||||
|       <tbody> | ||||
| 	<tr> | ||||
| 	  <td> 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.) </td> | ||||
|           <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
|       </tbody> | ||||
|     </table> | ||||
| 
 | ||||
|     <a name="low-priority"></a> | ||||
|     <h3>Low Priority Tasks</h3> | ||||
| 
 | ||||
|     <table class="tblbasic"> | ||||
|       <tbody> | ||||
| 	<tr> | ||||
| 	  <td> 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). | ||||
| 	    <a href="http://www.root.org/~nate/freebsd/bsd_apm.diff">Here is a | ||||
| 	    patch</a> 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.</td> | ||||
|           <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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 <a | ||||
| 	    href="&cgibase;/url.cgi?ports/sysutils/radeontool/pkg-descr">Radeontool | ||||
| 	    port</a> in video resume.</td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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.) </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> For systems that fail to power off, try using the suspend code | ||||
| 	    (acpi_SetSleepState) instead. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Implement reset register functionality for rebooting systems | ||||
| 	    that lack a keyboard controller (see ACPI v2 FADT->ResetRegister). </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Check our implementation of AcpiOsDerivePciId(). | ||||
| 	    It is probably not quite right.  Compare against Linux. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Traverse local reference (scope) types in namespace when probing | ||||
| 	    devices. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Implement support for _PRS/_SRS and dependent functions. | ||||
| 	    This will allow serial port configuration to occur. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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" | ||||
| 	    (<a href="https://sourceforge.net/mailarchive/message.php?msg_id=6923358"> | ||||
| 	    msg</a>).  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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td>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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> device_power -- Add a "power" argument to devctl(8) | ||||
| 	    that allows a device to be set into various low power or | ||||
| 	    off states. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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.</td> | ||||
| 	  <td> &a.imp;, &a.jhb;, and &a.takawata; </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.wip; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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 <a href="http://sourceforge.net/projects/omke/">Linux OMKE project | ||||
| 	    </a>. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Document acpi kernel interfaces -- Document the interfaces | ||||
| 	    for drivers found in acpivar.h. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> Add support for the real-time clock (RTC) to use to wake | ||||
| 	    or power-on systems at a certain time of day. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
| 	<tr> | ||||
| 	  <td> 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. </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td>   </td> | ||||
| 	  <td> &status.new; </td> | ||||
| 	  <td>   </td> | ||||
| 	</tr> | ||||
| 
 | ||||
|       </tbody> | ||||
|     </table> | ||||
| 
 | ||||
|     <a name="references"></a> | ||||
|     <h2>References</h2> | ||||
| 
 | ||||
|     <ul> | ||||
|       <li><a href="http://acpi.info/spec.htm">Advanced | ||||
|       Configuration and Power Interface Specification</a></li> | ||||
|     </ul> | ||||
| 
 | ||||
|   </body> | ||||
| </html> | ||||
|  | @ -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; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue