freebsd-skq/sys/x86/acpica
Konstantin Belousov f76b5ab6cc Fix resume on i386 PAE.
It was broken before PAE/no-PAE merge, but since now PAE is the
default, resume is apparently becomes for all machines.

The corrected issues:
- the trampoline page is not mapped executable, so machine faults when
  paging is on;
- MSR.EFER and %cr4 both should be loaded before paging is enabled,
  otherwise paging structures are invalid (cr4.PAE and EFER.NX).
- MSR.EFER and %cr4 should be only loaded if present.  I attempt to handle
  this by not touching the registers if the value is zero.

There are some more bits still not quite correct, e.g. unconditional
access to %cr4 in resumectx.

Reported and debugging help by:	bde
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2019-02-07 02:09:34 +00:00
..
acpi_apm.c sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
acpi_wakeup.c Fix resume on i386 PAE. 2019-02-07 02:09:34 +00:00
madt.c Dynamically allocate IRQ ranges on x86. 2018-08-28 21:09:19 +00:00
OsdEnvironment.c sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
srat.c acpica : move SRAT/SLIT parsing to sys/dev/acpica 2018-12-08 19:10:58 +00:00