#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
247881 |
|
06-Mar-2013 |
avg |
MFC r233579,236403,236408: make interrupt flags management closer to head
r233579: Restore interrupt state after executing AcpiEnterSleepState(). r236403,236408: acpi_wakeup_machdep/acpi_sleep_machdep
The merged changes are modified a bit to account for lots of missing acpi and acpica MFCs. For the same reason MFC to stable/8 is not practical.
MFC slackers: iwasaki, jkim
|
#
235796 |
|
22-May-2012 |
iwasaki |
MFC 235622,235639,235683:
Merge SMP/i386 suspend/resume support.
|
#
234141 |
|
11-Apr-2012 |
jhb |
MFC 232742: MFamd64: - Return failure for a suspend attempt if we have no wake address. - Use intr_disable()/intr_restore() instead of ACPI_DISABLE_IRQS(). - Invoke intr_suspend() earlier and call intr_resume() if suspend fails. - Use pause in the loop waiting for CPU to suspend. - Restore PAT MSR, switchtime, switchticks, and MTRRs on resume.
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
215200 |
|
12-Nov-2010 |
jkim |
MFamd64: (based on) r209957
Move logic of building ACPI headers for acpi_wakeup.c into better places, remove intermediate makefile and shell script, and reduce diff between i386 and amd64.
|
#
214630 |
|
01-Nov-2010 |
jhb |
Move the <machine/mca.h> header to <x86/mca.h>.
|
#
209212 |
|
15-Jun-2010 |
jhb |
Restore the machine check register banks on resume. For banks being monitored via CMCI, reset the interrupt threshold to 1 on resume.
Reviewed by: jkim MFC after: 2 weeks
|
#
193530 |
|
05-Jun-2009 |
jkim |
Import ACPICA 20090521.
|
#
188767 |
|
18-Feb-2009 |
rdivacky |
Mark these variables as __used too. Fix a style of previous commit.
Noticed by: Christoph Mallon Approved by: kib (mentor)
|
#
188753 |
|
18-Feb-2009 |
rdivacky |
Mark these variables as __used as those are used in the asm block.
Approved by: kib (mentor)
|
#
177253 |
|
16-Mar-2008 |
rwatson |
In keeping with style(9)'s recommendations on macros, use a ';' after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr.
MFC after: 1 month Discussed with: imp, rink
|
#
167578 |
|
14-Mar-2007 |
njl |
Create an identity mapping (V=P) super page for the low memory region on boot. Then, just switch to the kernel pmap when suspending instead of allocating/freeing our own mapping every time. This should solve a panic of pmap_remove() being called with interrupts disabled. Thanks to Alan Cox for developing this patch.
Note: this means that ACPI requires super page (PG_PS) support in the CPU. This has been present since the Pentium and first documented in the Pentium Pro. However, it may need to be revisited later.
Submitted by: alc MFC after: 1 month
|
#
161064 |
|
07-Aug-2006 |
njl |
If a beep was enabled, turn it off 3 seconds after resume.
MFC after: 3 days
|
#
159665 |
|
16-Jun-2006 |
mjacob |
Unbreak tinderbox- fix device_printf arg to accomodate different sizes of vm_paddr_t in different contexts (e.g., PAE vs. non PAE).
|
#
159479 |
|
10-Jun-2006 |
njl |
* Ask for a page-aligned page instead of an arbitrary address. This should not be necessary but might be helpful and at least reduce fragmentation. * Add an assert to detect if the wakecode ever grows too big. We include 1 KB for stack, which should be more than enough also. * Remove unnecessary initialization of static variables. * Add comments and a bootverbose print giving the page phys address.
|
#
159409 |
|
08-Jun-2006 |
njl |
Minor tweaks to the resume code that might help people debug.
* Add hw.acpi.resume_beep tunable and sysctl, default to 0. Beeps the PC speaker soon after waking to diagnose whether the wakeup code is even getting run before other drivers possibly hang the system. To stop the beep, cause another beep (i.e. keyboard bell). Submitted by takawata@, I changed the frequency to be lower.
* Use 4096 instead of 4 byte alignment. Might be useful although doesn't seem to be necessary.
* Remove a useless assignment to acpi_reset_video. It was overwritten by the default sysctl value anyway.
|
#
150003 |
|
11-Sep-2005 |
obrien |
Canonize the include of acpi.h.
|
#
149210 |
|
17-Aug-2005 |
rodrigc |
Rename variables: r_gdt -> saved_gdt r_idt -> saved_idt r_ldt -> saved_ldt
in order to prevent clashes with variables with same names defined in <machine/segments.h>. This fixes compilation of this file with GCC 4.0.
Reviewed by: njl
|
#
143063 |
|
02-Mar-2005 |
joerg |
netchild's mega-patch to isolate compiler dependencies into a central place.
This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42.
By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course.
Submitted by: netchild Reviewed by: various developers on arch@, some time ago
|
#
134027 |
|
19-Aug-2004 |
njl |
Disable interrupts after using pmap_enter() to add the identity mapping. Since pmap_enter() calls pmap_invalidate_page(), which needs interrupts enabled in the SMP case, we defer the disable to right before saving the register context. This has been incorrect for about a year but caused no real problems because the identity page never actually replaces a previously mapped page and suspend/resume on SMP systems has been uncommon.
Tested by: sos MFC after: 3 days
|
#
133155 |
|
05-Aug-2004 |
njl |
Remove the attempt to cache the previous page mapped at our identity location (for the wake code). It should not be needed since we don't map other pages at the same location and if there was an old mapping, it would be restored by a fault. The old code had serious problems, namely that it was restoring the new page it had just removed (not opage) and it could only guess at the right protection (since there's no pmap_extract_protect function). Thanks to Alan Cox for explaining much of this to me.
Also, remove a commented-out initializecpu() call since it is not needed. Restoring the cpu context is better than attempting to init from scratch.
Reviewed by: alc (earlier version)
|
#
132774 |
|
28-Jul-2004 |
kan |
Avoid casts as lvalues. While here, avoid storing 32bit quantities in 16bit locations.
|
#
132220 |
|
15-Jul-2004 |
alc |
Push down the acquisition and release of the page queues lock into pmap_protect() and pmap_remove(). In general, they require the lock in order to modify a page's pv list or flags. In some cases, however, pmap_protect() can avoid acquiring the lock.
|
#
131677 |
|
06-Jul-2004 |
njl |
Use the proper type and then cast on assignment. This fixes warning when building with -O2.
|
#
128990 |
|
06-May-2004 |
njl |
Make unnecessary globals static and remove unused includes.
Pointed out by: cscout
|
#
128975 |
|
05-May-2004 |
njl |
Style cleanups, u_intXX -> uintXX.
|
#
126891 |
|
12-Mar-2004 |
trhodes |
These are changes to allow to use the Intel C/C++ compiler (lang/icc) to build the kernel. It doesn't affect the operation if gcc.
Most of the changes are just adding __INTEL_COMPILER to #ifdef's, as icc v8 may define __GNUC__ some parts may look strange but are necessary.
Additional changes: - in_cksum.[ch]: * use a generic C version instead of the assembly version in the !gcc case (ASM code breaks with the optimizations icc does) -> no bad checksums with an icc compiled kernel Help from: andre, grehan, das Stolen from: alpha version via ppc version The entire checksum code should IMHO be replaced with the DragonFly version (because it isn't guaranteed future revisions of gcc will include similar optimizations) as in: ---snip--- Revision Changes Path 1.12 +1 -0 src/sys/conf/files.i386 1.4 +142 -558 src/sys/i386/i386/in_cksum.c 1.5 +33 -69 src/sys/i386/include/in_cksum.h 1.5 +2 -0 src/sys/netinet/igmp.c 1.6 +0 -1 src/sys/netinet/in.h 1.6 +2 -0 src/sys/netinet/ip_icmp.c
1.4 +3 -4 src/contrib/ipfilter/ip_compat.h 1.3 +1 -2 src/sbin/natd/icmp.c 1.4 +0 -1 src/sbin/natd/natd.c 1.48 +1 -0 src/sys/conf/files 1.2 +0 -1 src/sys/conf/files.amd64 1.13 +0 -1 src/sys/conf/files.i386 1.5 +0 -1 src/sys/conf/files.pc98 1.7 +1 -1 src/sys/contrib/ipfilter/netinet/fil.c 1.10 +2 -3 src/sys/contrib/ipfilter/netinet/ip_compat.h 1.10 +1 -1 src/sys/contrib/ipfilter/netinet/ip_fil.c 1.7 +1 -1 src/sys/dev/netif/txp/if_txp.c 1.7 +1 -1 src/sys/net/ip_mroute/ip_mroute.c 1.7 +1 -2 src/sys/net/ipfw/ip_fw2.c 1.6 +1 -2 src/sys/netinet/igmp.c 1.4 +158 -116 src/sys/netinet/in_cksum.c 1.6 +1 -1 src/sys/netinet/ip_gre.c 1.7 +1 -2 src/sys/netinet/ip_icmp.c 1.10 +1 -1 src/sys/netinet/ip_input.c 1.10 +1 -2 src/sys/netinet/ip_output.c 1.13 +1 -2 src/sys/netinet/tcp_input.c 1.9 +1 -2 src/sys/netinet/tcp_output.c 1.10 +1 -1 src/sys/netinet/tcp_subr.c 1.10 +1 -1 src/sys/netinet/tcp_syncache.c 1.9 +1 -2 src/sys/netinet/udp_usrreq.c
1.5 +1 -2 src/sys/netinet6/ipsec.c 1.5 +1 -2 src/sys/netproto/ipsec/ipsec.c 1.5 +1 -1 src/sys/netproto/ipsec/ipsec_input.c 1.4 +1 -2 src/sys/netproto/ipsec/ipsec_output.c
and finally remove sys/i386/i386 in_cksum.c sys/i386/include in_cksum.h ---snip--- - endian.h: * DTRT in C++ mode - quad.h: * we don't use gcc v1 anymore, remove support for it Suggested by: bde (long ago) - assym.h: * avoid zero-length arrays (remove dependency on a gcc specific feature) This change changes the contents of the object file, but as it's only used to generate some values for a header, and the generator knows how to handle this, there's no impact in the gcc case. Explained by: bde Submitted by: Marius Strobl <marius@alchemy.franken.de> - aicasm.c: * minor change to teach it about the way icc spells "-nostdinc" Not approved by: gibbs (no reply to my mail) - bump __FreeBSD_version (lang/icc needs to know about the changes)
Incarnations of this patch survive gcc compiles since a loooong time, I use it on my desktop. An icc compiled kernel works since Nov. 2003 (exceptions: snd_* if used as modules), it survives a build of the entire ports collection with icc.
Parts of this commit contains suggestions or submissions from Marius Strobl <marius@alchemy.franken.de>.
Reviewed by: -arch Submitted by: netchild
|
#
121993 |
|
03-Nov-2003 |
jhb |
- Update includes. - Use intr_suspend/resume() callouts to the interrupt code layer which suspends and resumes all the known interrupt sources instead of calling icu_reinit() directly.
|
#
121830 |
|
31-Oct-2003 |
njl |
Change the reset video option to be positive (hw.acpi.reset_video). Requested by: jhb
Initialize the real mode stack. This is needed at least for the return address from the lcall. Requested by: takawata
Fix style bugs in acpi_wakecode.S Requested by: bde
Remove the kernel option now that we have the tunable.
|
#
121743 |
|
30-Oct-2003 |
iwasaki |
Add sysctl MIB and loader tunable `hw.acpi.no_reset_video' as the same effect as ACPI_NO_RESET_VIDEO kernel option.
|
#
120424 |
|
25-Sep-2003 |
alc |
- Eliminate the pte object. - Use kmem_alloc_nofault() rather than kmem_alloc_pageable() to allocate KVA space for the page directory page(s). Submitted by: tegge
|
#
119873 |
|
08-Sep-2003 |
njl |
Don't disable interrupts a second time. Remove an extraneous interrupt enable (that happens elsewhere). Clarify the interrupt disabling point by using ACPI_DISABLE_IRQS().
Tested by: Kevin Oberman
|
#
119549 |
|
29-Aug-2003 |
njl |
Use the ACPICA AcpiEnterSleepStateS4bios instead of rolling our own. This change also disables interrupts around non-S4 suspends whereas before we did not do this. Our version of AcpiEnterSleepStateS4bios was almost identical to the ACPICA version.
|
#
119530 |
|
28-Aug-2003 |
njl |
Style cleanups.
|
#
118218 |
|
30-Jul-2003 |
njl |
Use ACPI_FLUSH_CPU_CACHE() instead of wbinvd(). Verified .o with md5.
Pointed out by: Mark Santcroos <marks@ripe.net>
|
#
117844 |
|
21-Jul-2003 |
peter |
Commit Ian Dowse's workaround for acpi resume resetting after the LAZY_SWITCH changes. He pointed out the acpi code sets up an identity mapping in the current vmspace and that got messed up by the %cr3 being out of sync with the current page directory. As a workaround, restore %cr3 across the sleep/resume. A more complete fix would be to undo the lazy state and clear the pm_active bit from the borrowed pmap, but this works and people are currently hurting. I'll clean this up. This is mostly Ian's patch, plus a PAE tweak from me.
|
#
117126 |
|
01-Jul-2003 |
scottl |
Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour.
sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen.
If anyone gets panics or warnings from dflt_lock() being called, please let me know right away.
Reviewed by: tmm, gibbs
|
#
115681 |
|
02-Jun-2003 |
obrien |
Use __FBSDID().
|
#
114977 |
|
13-May-2003 |
jhb |
Add some extra #ifdef stubs so that this compiles on 4.8.
Approved by: re (rwatson/bmah)
|
#
112569 |
|
24-Mar-2003 |
jake |
- Add vm_paddr_t, a physical address type. This is required for systems where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
|
#
107618 |
|
04-Dec-2002 |
alc |
Hold the page queues lock around calls to pmap_remove().
Approved by: re
|
#
107199 |
|
24-Nov-2002 |
iwasaki |
Add `if (!cold)' checkings for functions which is called via SYSINIT. Loading acpi.ko with kldload is disallowed, however some functions were executed unexpectedly.
Approved by: re
|
#
105277 |
|
16-Oct-2002 |
jhb |
- curproc may be NULL in 4-stable. In that case use the vmspace from proc0. - Remove unused include.
Sponsored by: The Weather Channel
|
#
103748 |
|
21-Sep-2002 |
markm |
Wrap GCC-specific asm() code in #ifdef __GNUC__
|
#
102291 |
|
22-Aug-2002 |
archie |
Replace (ab)uses of "NULL" where "0" is really meant.
|
#
101459 |
|
07-Aug-2002 |
iwasaki |
Improve stack manipulation code of ACPI wakeup routine. The new code just override stack top value with saved return address rather than pop/push operation.
Submitted by: jhb
|
#
101140 |
|
01-Aug-2002 |
iwasaki |
Fix a bug about stack manipulation at ACPI wakeup. This should avoid kernel panic on kernel compiled w/o NO_CPU_COPTFLAGS.
Suggested by: optimized code by -mcpu=pentiumpro
|
#
96929 |
|
19-May-2002 |
peter |
Make this compile with gcc-3.1, which objects to the multi-line string.
|
#
89179 |
|
10-Jan-2002 |
wes |
Fix typo in function name.
Reviewed by: peter@ Obtained from: mux@sneakerz.org
|
#
89156 |
|
09-Jan-2002 |
takawata |
Fix S3 breakage. Now AcpiEnterSleep() is light enough, so flushing cache before the function is not too early.
|
#
89054 |
|
08-Jan-2002 |
msmith |
Staticise devclasses and some unnecessarily global variables.
|
#
86554 |
|
18-Nov-2001 |
iwasaki |
Yet another verbose printing cleanup. Remove debug_wakeup flag and check common verbose flag instead.
|
#
86262 |
|
11-Nov-2001 |
iwasaki |
Add two minor changes. - clean up wakeup routing fixup code by using macros. - allocate pte object temporary for kernel thread to avoid kernel panic by events from sleep button or lid switch.
|
#
86133 |
|
06-Nov-2001 |
iwasaki |
Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support. - Add S4BIOS sleep implementation. This will works well if MIB hw.acpi.s4bios is set (and of course BIOS supports it and hibernation is enabled correctly). - Add DSDT overriding support which is submitted by takawata originally. If loader tunable acpi_dsdt_load="YES" and DSDT file is set to acpi_dsdt_name (default DSDT file name is /boot/acpi_dsdt.aml), ACPI CA core loads DSDT from given file rather than BIOS memory block. DSDT file can be generated by iasl in ports/devel/acpicatools/. - Add new files so that we can add our proposed additional code to Intel ACPI CA into these files temporary. They will be removed when similar code is added into ACPI CA officially.
|
#
80160 |
|
22-Jul-2001 |
iwasaki |
Don't do sleep state transition if specified sleep state is not supported by the system.
|
#
80078 |
|
21-Jul-2001 |
msmith |
Convert from acpi_strerror() to AcpiFormatException()
Fix dangling include of the dear departed acpi_ecreg.h
|
#
80028 |
|
20-Jul-2001 |
takawata |
Add ACPI S2-S4BIOS Suspend/Resume code. Some problems may remain.
Reviewed by:iwasaki
|