Commit graph

193 commits

Author SHA1 Message Date
Nate Lawson 2ff84d1485 Read in the entire RSDP but only run the standard checksum over the
version 1 header.  Add comments to explain what we're doing here better.

Reported by:	Alex Vasylenko <lxv@omut.org>
2004-05-16 05:31:40 +00:00
Nate Lawson 8fc0f4c675 Instead of scanning the entire lower 1 MB of RAM, only scan locations
where the RSD PTR can actually occur.  According to section 5.2.2
of the ACPI spec, we only consider two regions for the base address:

    1. EBDA (0x0 - 0x3FF)
    2. High memory (0xE0000 - 0xFFFFF)

I don't know whether this fixes any actual problems but is more correct.
2004-05-14 16:52:39 +00:00
Dag-Erling Smørgrav 476daaec24 Minor style issues. 2004-05-10 21:18:03 +00:00
Nate Lawson c2962974d0 Instead of using a static, check for the FADT revision before using it.
This fixes a bug where acpidump -d crashed (but not -t -d).

Submitted by:	Alex Vasylenko <lxv@omut.org>
2004-04-18 05:21:36 +00:00
Takanori Watanabe 8aabbec241 Fix style breakage.
Noticed by: njl
2004-03-05 02:48:22 +00:00
Takanori Watanabe fe27a95e90 Make unprivilaged user can see battery info. 2004-03-04 17:03:49 +00:00
Dag-Erling Smørgrav 09e0653941 I don't normally use my middle name, so remove it from attributions in
man pages (though not from copyright notices).  While I'm here, add email
addresses where appropriate.
2004-01-25 11:39:42 +00:00
Ruslan Ermilov 76b0ae588c - Use the standard .y and .l transformation rules -- this fixes
the usual parallel make race in custom .y rules.

- Fixed some style bugs.

- Removed -v from YFLAGS.

Prodded by:     bde
Reviewed by:    bde, njl
2004-01-13 20:53:56 +00:00
Ruslan Ermilov c3d0f96a5a Use my newly acquired magic stick and put aslcompiler.y.h into
SRCS to teach make(1) that many .c sources are dependent on it.
This fixes parallel (-j) builds and makes it possible to build
individual .o files separately.

While here, removed PROG from CLEANFILES -- it's taken care of
already by bsd.prog.mk.
2004-01-11 19:26:33 +00:00
Nate Lawson c83f0f992a Clean up the check for invalid X_DSDT and X_FACS portions of the FADT.
Add fadt_revision for telling if the FADT has correct 64 bit addresses,
separate from whether the XSDT has legal 64 bit addresses.
2004-01-04 22:27:53 +00:00
Nate Lawson e776370e2b Add support for /etc/rc.suspend and /etc/rc.resume for ACPI. They are
called directly from acpiconf(8).  Change both scripts to take a
subsystem (apm|acpi) and sleep level (suspend,standby|1-5) argument.
2003-12-30 17:28:06 +00:00
Nate Lawson 4e36f5a1b9 Add a newline even if IAPC_BOOT_ARCH == 0. 2003-10-29 17:59:05 +00:00
Nate Lawson 69a9febdc2 Only print an end '}' if the field was non-zero (i.e. there were some flags
to print).
2003-09-21 03:51:48 +00:00
Nate Lawson 5cd10ac5d9 Correct typo in comment. 2003-09-14 00:40:24 +00:00
Nate Lawson 2e71eb1257 For dumping the DSDT (-o option), be sure to use the X_DSDT address if
appropriate.  This should be the last change to make ia64 work.
2003-09-14 00:37:52 +00:00
Nate Lawson 64fdad2352 Add the -i flag to acpiconf(8) to retrieve battery information.
Rename a few structure elements.
2003-09-13 20:13:01 +00:00
Nate Lawson 51c1824f80 C2/C3 latency is in microseconds (us), not ms. 2003-09-13 18:47:49 +00:00
Nate Lawson c08c4e81fc Only print various optional fields if they are non-zero. Always print the
required fields, no matter what their value.
2003-09-13 18:44:05 +00:00
Nate Lawson e47f1780cd Reduce the default width for IO port GAS printing.
Courtesy of:	rwatson's chart presentation
2003-09-13 17:32:45 +00:00
Nate Lawson 55d7ff9ea2 Add dumping of the ECDT table.
Courtesy of:	USENIX hall track
2003-09-10 23:52:12 +00:00
Nate Lawson 773b6454af o Workaround a bug where my T23 reports that it is ACPI 2.0x compatible
but has invalid 64 bit pointers for FACS and DSDT.
o Finish work to print all of the FADT and FACS.
o Resort the comment generating functions.  Submitted by: marcel

Courtesy of:	BSDcon back wall
2003-09-10 22:00:45 +00:00
Nate Lawson a74172ab68 Add support for ACPI 2.x and the XSDT.
Submitted by:	marcel
2003-09-09 08:54:04 +00:00
Nate Lawson 8e6a8737d7 Rename FACP to FADT throughout.
Update FADT for new fields including pm_profile, pstate_cnt, and cst_cnt.
Add acpi_print_gas() for printing various address formats.
Print FACS contents.
Remove unused code.
2003-09-09 08:31:58 +00:00
Nate Lawson 1f5b6306c2 Now that amldb(8) is no longer needed by acpidump, remove the last vestiges
of the original userland ACPI implementation.  amldb is still available from
the devel/acpicatools port.
2003-08-28 03:38:18 +00:00
Nate Lawson 945137d9b4 Modify acpidump to use iasl(8) as the backend for disassembling AML.
Also clean up the output of dumped tables.  Update the man page for the
new usage.  Make WARNS=6 clean.
2003-08-28 03:33:07 +00:00
Nate Lawson c0efcff271 Remove the band-aid to make these compile on amd64/ia64. 2003-08-11 15:49:14 +00:00
Marcel Moolenaar f88faa54e4 Apparently I limited my testing of the ductape and bubblegum solution
to acpidb. The same problem exists in iasl. Add JIT patching there
too.
Add a comment to both makefiles to increase the chance that both
kludges are removed when a real solution is committed.
2003-08-09 19:11:20 +00:00
Marcel Moolenaar 67fdc6b784 Perform first-aid: unbreak the build for amd64 and ia64 by patching
osunixxf.c on the fly. This avoids having to pull it from the vendor
branch or otherwise pollute the repository with new short-lived files.

This should hold until the real fix arrives.
2003-08-09 07:06:09 +00:00
Nate Lawson 3e0387b483 Hook acpidb(8) and iasl(8) up to the build and unhook amldb(8). It will
be going away after a short while but still available in ports.
2003-08-08 03:20:59 +00:00
Nate Lawson 8285491e78 Add man pages for acpidb and iasl 2003-08-07 18:09:17 +00:00
Nate Lawson a42b754313 Add the acpidb and iasl utilities. This is not yet hooked up to the build.
Obtained from:	acpicatools port by Iwasaki-san
2003-08-07 16:51:50 +00:00
Peter Wemm 55da3c73ae Hoo sed I kan spel? 2003-08-02 01:58:33 +00:00
Peter Wemm 79d7565c5a Dump the HPET information block.
What is the HPET I hear you ask?  It is the High Precision Event Timer
that is supposed to supplement and eventually replace the 8254 timer and
the RTC periodic interrupts.  Among other things, it is 64 bit (can be
run in 32 bit mode for 32 bit cpus), and is suitable as a replacement for
the ACPI timer on SMP systems (the specs are much better) and as a
replacement for the ITC based synthetic clock for on ia64 systems.

It seems IA64 and AMD64 systems tend to have this.  It is likely to start
showing up in i386 systems if it isn't already on some of them.
2003-08-02 01:55:03 +00:00
Nate Lawson d886fcc23e Allow sleep states to be specified as S1, S2, ...
This is used by zzz(8).
2003-07-28 16:22:45 +00:00
Nate Lawson 51773ddf47 Support functions for the new ACPI import.
* AcpiOsDerivePciId(): finds a bus number, given the slot/func and the
    acpi parse tree.
  * AcpiOsPredefinedOverride(): use the sysctl hw.acpi.os_name to
    override the value for _OS.

Ideas from:	takawata, jhb
Reviewed by:	takawata, marcel
Tested on:	i386, ia64
2003-04-29 18:50:34 +00:00
Nate Lawson d6c5005c05 Fix a warning about deprecated string literals.
Reviewed by:	diff
2003-04-15 05:15:50 +00:00
John Baldwin 0a47312495 Add code to parse the contents of an ACPI MADT table and to dump its
contents in the form of a comment in the acpidump output.  The output
is not in the prettiest output, but it does work correctly.

Approved by:	marcel
2003-01-08 20:46:25 +00:00
John Baldwin 7f3d3d9b26 Add structure definitions for the various items in a ACPI Multiple
APIC Descriptor Table (MADT) which has the signature 'ACPI'.

Approved by:	marcel
2003-01-08 20:45:23 +00:00
Jens Schweikhardt 57bd0fc6e8 english(4) police. 2002-12-27 12:15:40 +00:00
Marcel Moolenaar 00d3053746 o Use sysctl machdep.acpi_root to get the physical address of the
RSDP. Scan the first 1MB on i386 if the sysctl fails,
o  Extend struct ACPIrsdp with the ACPI 2.0 fields which involves
   changing a prior reserved field into the ACPI revision,
o  Only calculate the RSDP checksum on the first 20 bytes to remain
   compatible with ACPI 1.0 tables; we don't check the extended
   checksum covering the whole table,
o  Use the length field in the RSDP to map the RSDP into the address
   space so that we don't have to know about future extensions here.
2002-12-19 08:06:53 +00:00
Ruslan Ermilov c041c1e0d9 mdoc(7) police: markup fixes.
Approved by:	re
2002-11-27 15:31:08 +00:00
John Baldwin add448e4e7 Use __packed. 2002-10-09 19:46:09 +00:00
John Baldwin 63af7856ee Only include parent directory Makefile.inc if it exists. Now you can
cvs co acpi and build acpi utilities w/o needing the usr.sbin Makefile.inc.
2002-09-17 14:56:23 +00:00
Takanori Watanabe 50e7eeb7ca Add sleep state explanation.
Requested by: murray at Cafe in Tokyo.
2002-09-16 12:11:25 +00:00
Ruslan Ermilov a654c53e16 mdoc(7) police: Removed redundant .Ns calls. 2002-08-13 16:07:28 +00:00
Philippe Charnier 490d5836b5 The .Nm utility 2002-07-14 14:47:15 +00:00
Mitsuru IWASAKI 98479b041b Resolve conflicts arising from the ACPI CA 20020611 import. 2002-07-09 17:54:02 +00:00
Takanori Watanabe 420ba21437 Fix bug on method local named object related panic and Bankfield
operation.
2002-03-02 15:05:26 +00:00
Ruslan Ermilov 5f343805b7 mdoc(7) police: kill WEOL and HSB, tidy up the AUTHORS section. 2002-01-10 14:36:17 +00:00
Mike Smith add420aa72 Add support for decoding Buffer objects that contain PnP/ACPI resource
streams.  Since the output is bulky, it's controlled by the '-r'
option.

Document this in the manpage, and clean up some awkward English a
little.
2002-01-02 07:01:34 +00:00
Crist J. Clark 28f49c6daf Make the error messaging more helpful.
PR:		31483
Approved by:	iwasaki, ru
MFC after:	4 days
2001-11-30 11:35:01 +00:00
Takanori Watanabe 7e489a2fdd Collect multi name handling.
Reported by :    Stephan Kulow <coolo@caldera.de>
2001-10-23 14:54:15 +00:00
Mitsuru IWASAKI c62f1ccc6f Fix UserTerms disassembling. Now that dumped ASL can be compiled with
ports/devel/acpitools (iasl).
 - Merge AML parser to build ACPI namespace
 - Comment header info. out so that ASL compiler ignore them
 - Fix DSDT header size to be discarded when DSDT file is specified
   for input (acpidump and amldb)
 - Write DSDT header as well into DSDT file for output
 - Fix some trivial typo (Concatenate and SizeOf)
 - Remove DEBUG_FLAGS from Makefile (acpidump and amldb)
2001-10-22 17:25:32 +00:00
Dima Dorfman 9507e12126 Fix typo.
PR:		30342
Submitted by:	Giorgos Keramidas <charon@labs.gr>
2001-09-05 19:21:25 +00:00
Ruslan Ermilov c4d9468ea0 mdoc(7) police:
Avoid using parenthesis enclosure macros (.Pq and .Po/.Pc) with plain text.
Not only this slows down the mdoc(7) processing significantly, but it also
has an undesired (in this case) effect of disabling hyphenation within the
entire enclosed block.
2001-08-07 15:48:51 +00:00
Mike Smith 59eacecf65 ACPI CA doesn't recognis S4BIOS as a seperate sleep type anymore, so
drop support for it here until we work out a better way of handling it.
2001-07-21 21:51:44 +00:00
David E. O'Brien 90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
David E. O'Brien ac24b049cc Remove GCC'isms in CFLAGS. 2001-07-20 04:23:13 +00:00
Dima Dorfman f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Ruslan Ermilov a4c37c816b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 15:12:08 +00:00
Dima Dorfman 70d51341bf mdoc(7) police: remove extraneous .Pp before and/or after .Sh. 2001-07-09 09:54:33 +00:00
Ruslan Ermilov 5521ff5a4d mdoc(7) police: sort SEE ALSO xrefs (sort -b -f +2 -3 +1 -2). 2001-07-06 16:46:48 +00:00
David E. O'Brien be51554b89 Remove double //'s in path. 2001-06-02 19:09:37 +00:00
Mike Smith 19dbbb64f5 Catch up to new include paths.
Submitted by:	walt <wsheets@att.net>
2001-05-30 00:22:37 +00:00
Mitsuru IWASAKI d5b6ee573a Remove NOSHARED.
The usr.sbin/acpi/ utilities should be compiled non-static.
It just followed the usr.sbin/pccard/Makefile.inc way last time.

Pointed out by: ru and msmith
Committed at:   BSD HANAMI in Japan 2001
2001-04-01 07:00:35 +00:00
Ruslan Ermilov 345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Ruslan Ermilov c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
Ruslan Ermilov cde1a559db mdoc(7) police: removed leading (non-sense) .Ns call. 2001-02-06 16:22:17 +00:00
Ruslan Ermilov 610a5778c5 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:44:04 +00:00
Ruslan Ermilov e405a76037 mdoc(7) police: .Dv -> .Cm where appropriate. 2001-01-22 10:32:03 +00:00
Dag-Erling Smørgrav 7a9fa8f89d Spell my name right in the copyright. 2001-01-14 16:14:17 +00:00
Mitsuru IWASAKI 4e3b468fb1 Oops, forgotten to add manpage. 2001-01-13 16:18:37 +00:00
Mitsuru IWASAKI a7b4620db0 Add manpage for acpiconf.
Submitted by:	des
2001-01-13 16:16:25 +00:00
Ruslan Ermilov ed40311694 mdoc(7) police: removed history info from the .Os FreeBSD call. 2000-12-14 11:52:05 +00:00
Ruslan Ermilov e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
Kris Kennaway c4dfae1d3c Format string error in warn() 2000-11-19 13:29:43 +00:00
Mitsuru IWASAKI 7a503f5ce5 Move old aml interpreter code to amldb/aml/. This will be used for our
reference and comparison with ACPICA aml interpreter's behavior.
2000-11-09 06:24:45 +00:00
Mitsuru IWASAKI d3f4a2ca8e Remove dependence on old acpi driver from acpi userland tools.
- acpiconf	Replace include files from old acpi driver to acpica driver.
		New sleep type `4b' had been added (S4BIOS) for `-s' option.
		Of course this has no effect because driver doesn't
		support it for now :-)

 - acpidump	All needed structs in sys/dev/acpi/*.h had been merged
		into local header file.  No changes on its usage.
2000-11-08 02:37:00 +00:00
Mitsuru IWASAKI 6a8954b084 Fix StallOp implementaion. I've noticed that StallOp corresponds to
OsdSleepUsec(), SleepOp corresponds to OsdSleep() by reading ACPICA
source code.
 - Add OsdSleepUsec() which uses DELAY() simply.
 - Change unit of acpi_sleep() argument; microseconds to milliseconds.
2000-10-02 08:58:50 +00:00
Mitsuru IWASAKI 3ffcacc9d8 Remove ACPI_NO_OSDFUNC_INLINE option from kernel configuration. Now
that it's enabled in acpireg.h only if DIAGNOSTIC option is specified.
ACPICA OSD functions will be compiled in machine/acpi_machdep.c again
tentatively (if DIAGNOSTIC option is specified).
# Should we have acpica_osd.c ?
2000-10-01 08:17:47 +00:00
Mitsuru IWASAKI 3ea2027588 - Add acpi_disable_events() and set it with EVENTHANDLER_REGISTER in order to
avoid power on again problem after acpi_soft_off() calling.
 - Implement SleepOp/StallOp in AML interpreter.  Also provide ACPICA
   compatibility.
 - Minor changes on __inline function declaration in acpica_osd.h
   (obtained from NetBSD porting).
2000-09-30 22:37:24 +00:00
Mike Smith e434fd9b90 Update include paths for new header locations.
Submitted by:	iwasaki
2000-09-30 20:13:57 +00:00
Mike Smith 96f5284585 More updates to the ACPI code:
- Move all register I/O into acpi_io.c
 - Move event handling into acpi_event.c
 - Reorganise headers into acpivar/acpireg/acpiio
 - Move find-RSDT and find-ACPI-owned-memory into acpi_machdep
 - Allocate all resources (except those detailed only by AML)
   as real resources.  Add infrastructure that will make adding
   resource support to AML code easy.
 - Remove all ACPI #ifdefs in non-ACPI code
 - Removed unnecessary includes
 - Minor style and commenting fixes

Reviewed by:	iwasaki
2000-09-30 20:12:27 +00:00
Mitsuru IWASAKI fe44e2ea94 Fix LINT breakage by options ACPI_NO_OSDFUNC_INLINE.
Also space/tab-fix in NOTE.
Grrr, my bad.

Pointed-out by:	eivind
2000-09-21 13:01:19 +00:00
Mitsuru IWASAKI 80d92dc27e Add new function in AML interpreter; aml_invoke_method().
Also remove unneeded includes in aml_obj.c and aml_parse.c.

This new function takes 'struct aml_name *' as a argument rather than
'char *' where aml_invoke_method_by_name() does.  It's worth to have
these two interfaces in many cases.
2000-09-20 22:53:39 +00:00
Mitsuru IWASAKI c369b3b021 Improve region I/O sub-routines by re-writing most of low level part
of AML interpreter.
 - Delete and cleanup a lot of almost duplicated code in kernel/userland.
 - Add new common functions for kernel/userland code.
      aml_adjust_readvalue(), aml_adjust_updatevalue(),
      aml_region_handle_alloc(), aml_region_handle_free() and
      aml_region_io().
 - Add primitive functions for both versions of kernel/userland in order to
   have shared code as much as possible.
      aml_region_read_simple(), aml_region_write_simple(),
      aml_region_prompt_read(), aml_region_prompt_write() and
      aml_region_prompt_update_value().
 - Consider update rule and access type in field flags. Also add a lot of
   definitions for the flags.
 - Fix bugs on bit manipulation for read/write operations.
 - Fix bugs on IndexField I/O part.  Also add workaround for temporary
   object corruption during StoreOp interpretation.
2000-09-20 01:01:32 +00:00
Mitsuru IWASAKI 37a23ef8ee Add manpages acpi userland tools.
Obtained from:	ACPI for FreeBSD project
2000-09-14 22:48:39 +00:00
Mitsuru IWASAKI 01be5ae188 import amldb(8) from ACPI For FreeBSD project.
Obtained from:  ACPI For FreeBSD project
2000-08-31 14:45:00 +00:00
Mitsuru IWASAKI e1e9a4bf77 import acpidump(8) from ACPI For FreeBSD project.
Obtained from:  ACPI For FreeBSD project
2000-08-31 14:42:32 +00:00
Mitsuru IWASAKI 2e6c5fc592 import acpiconf(8) from ACPI For FreeBSD project.
Obtained from:  ACPI For FreeBSD project
2000-08-31 14:41:23 +00:00
Mitsuru IWASAKI a7f7ce1393 Add Makefile for acpi userland tools.
Obtained from:	ACPI For FreeBSD project
2000-08-31 14:38:47 +00:00
Mitsuru IWASAKI 001bdb7c40 A lot of changes on acpi driver code.
- The "Osd*" stuff went away from acpi driver code, use the bus_space
   functions directly instead.
 - Fix minor english bugs.
   acpi_registers_input  -> acpi_register_input
   acpi_registers_output -> acpi_register_output
 - Remove all magic numbers for the sleeping states.  We now have
   #defines for these.
 - NULL is treated the same as the return from aml_get_rootname in
   aml_find_from_namespace().

Suggested by:	msmith

Thanks mike!
2000-08-29 20:30:54 +00:00
Takanori Watanabe 681cfb39e1 Add orthogonal part of ACPI support code.
This does not come effect until non-orthogonal part is commited.

Approved by: jkh
Obtained from:	ACPI for FreeBSD CVS repository.
2000-08-24 09:33:30 +00:00