Smep Details For Intel ® Quark Soc X1000 Core - Intel Quark SoC X1000 Core Developer's Manual

Hide thumbs Also See for Quark SoC X1000 Core:
Table of Contents

Advertisement

Protected Mode Architecture—Intel
If CR4.SMEP = 1, instructions may be fetched from any linear address with a
valid translation for which the U/S flag (bit 2) is 0 in at least one of the paging-
structure entries controlling the translation.
— For PAE paging or IA-32e paging with IA32_EFER.NXE = 1, access rights
depend on the value of CR4.SMEP:
If CR4.SMEP = 0, instructions may be fetched from any linear address with a
valid translation for which the XD flag (bit 63) is 0 in every paging-structure
entry controlling the translation.
If CR4.SMEP = 1, instructions may be fetched from any linear address with a
valid translation for which (1) the U/S flag is 0 in at least one of the paging-
structure entries controlling the translation; and (2) the XD flag is 0 in every
paging-structure entry controlling the translation.
For user-mode accesses:
• Data reads.
Data may be read from any linear address with a valid translation for which the U/S
flag (bit 2) is 1 in every paging-structure entry controlling the translation.
• Data writes.
Data may be written to any linear address with a valid translation for which both
the R/W flag and the U/S flag are 1 in every paging-structure entry controlling the
translation.
• Instruction fetches.
— For 32-bit paging or if IA32_EFER.NXE = 0, instructions may be fetched from
any linear address with a valid translation for which the U/S flag is 1 in every
paging-structure entry controlling the translation.
— For PAE paging or IA-32e paging with IA32_EFER.NXE = 1, instructions may be
fetched from any linear address with a valid translation for which the U/S flag is
1 and the XD flag is 0 in every paging-structure entry controlling the
translation.
A processor may cache information from the paging-structure entries in TLBs and
paging-structure caches (see
about access rights. The processor may enforce access rights based on the TLBs and
paging-structure caches instead of on the paging structures in memory.
This fact implies that, if software modifies a paging-structure entry to change access
rights, the processor might not use that change for a subsequent access to an affected
linear address.
6.4.5.1
SMEP Details for Intel
• Functionality/implementation is same as Silvermont.
• Enabled by setting CR4.SMEP (CR4[20])= 1.
• In supervisor mode (CPL < 3), a #PF is caused by code fetch from a page whose
mapping has the U/S bit set (CPL=3) at every level of the translation for the linear
address. If U/S is 0 at any level, CR4.SMEP does not cause a #PF.
— (CPL==OS) & PAGE==USER & (CR0.PG==1)
• #PF: if (CR4.SMEP=1), and CPL<3 and instruction is fetched from user mode page.
Error code = 10001b
— Page is present, Access was not a write (data read or code fetch), Access was
in supervisor mode (CPL < 3), No reserved-bit violation, Access was an
instruction fetch.
October 2013
Order Number: 329679-001US
®
Quark Core
Section
6.4.8). These structures may include information
®
Quark SoC X1000 Core
®
Intel
Quark SoC X1000 Core
Developer's Manual
101

Advertisement

Table of Contents
loading

Table of Contents