freebsd-dev/sys/i386
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
..
acpica Fix resume on i386 PAE. 2019-02-07 02:09:34 +00:00
bios Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
cloudabi32 Use TO_PTR() to convert integers to pointers. 2017-11-26 14:45:56 +00:00
conf Retire SPX_HACK option unused after r342244 2019-02-06 17:21:25 +00:00
i386 Make it possible to override PAE mode on boot. 2019-02-05 20:09:31 +00:00
include i386: Do not ever store to other-CPU counter64 slot. 2019-02-03 21:28:58 +00:00
linux Fix errno values returned from DUMMY_XATTR linuxulator calls 2019-01-11 07:58:25 +00:00
pci i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
Makefile Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00