* [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action
@ 2020-12-11 20:07 Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 1/2] Clean up format and layout to match template Michael D Kinney
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Michael D Kinney @ 2020-12-11 20:07 UTC (permalink / raw)
To: devel; +Cc: Jiewen Yao, Vincent Zimmer, Laurie Jarlstrom, Kevin Shaw
* Move figures from assets directory to media directory
* Remove non ASCII characters
* Add Figure to TOC
* Add missing file headers
* Add layout directory to match template
* Update CSS styles to match template
* Add GitBook Action
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Vincent Zimmer <vincent.zimmer@intel.com>
Cc: Laurie Jarlstrom <laurie.jarlstrom@intel.com>
Cc: Kevin Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Michael D Kinney (2):
Clean up format and layout to match template
Update to match template and enable GitBook action
.bookignore | 3 +
.github/workflows/gitbook-action.yml | 39 +++
.gitignore | 10 +-
README.md | 36 +--
SUMMARY.md | 38 +++
_layouts/ebook/page.html | 42 ++++
_layouts/ebook/pdf_footer.html | 17 ++
_layouts/ebook/pdf_header.html | 14 ++
_layouts/ebook/summary.html | 98 ++++++++
_layouts/layout.html | 27 +++
_layouts/website/footer.html | 17 ++
_layouts/website/header.html | 31 +++
_layouts/website/languages.html | 19 ++
_layouts/website/layout.html | 28 +++
_layouts/website/page.html | 86 +++++++
_layouts/website/summary.html | 61 +++++
assets/Tianocore_logo2.png | Bin 7360 -> 0 bytes
authors.md | 31 +++
book.json | 9 +
cover.jpg | Bin 0 -> 211343 bytes
executive-summary.md | 31 +++
glossary.md | 68 ++++--
.../Fig1- SMRAM memory protection.jpg | Bin
.../Fig2 - Mapping of Protection in SMM.jpg | Bin
...g3 - Page table enforced memory layout.jpg | Bin
.../Fig4 - UEFI memory protection.jpg | Bin
media/TianocoreTitlePageLogo.jpg | Bin 0 -> 44499 bytes
memory-protection-in-SMM.md | 134 ++++++-----
memory-protection-in-uefi.md | 104 +++++---
references.md | 50 +++-
styles/epub.css | 221 ++---------------
styles/mobi.css | 50 ++++
styles/pdf.css | 221 ++---------------
styles/website.css | 223 ++----------------
34 files changed, 950 insertions(+), 758 deletions(-)
create mode 100644 .bookignore
create mode 100644 .github/workflows/gitbook-action.yml
create mode 100644 _layouts/ebook/page.html
create mode 100644 _layouts/ebook/pdf_footer.html
create mode 100644 _layouts/ebook/pdf_header.html
create mode 100644 _layouts/ebook/summary.html
create mode 100644 _layouts/layout.html
create mode 100644 _layouts/website/footer.html
create mode 100644 _layouts/website/header.html
create mode 100644 _layouts/website/languages.html
create mode 100644 _layouts/website/layout.html
create mode 100644 _layouts/website/page.html
create mode 100644 _layouts/website/summary.html
delete mode 100644 assets/Tianocore_logo2.png
create mode 100644 book.json
create mode 100644 cover.jpg
rename {assets => media}/Fig1- SMRAM memory protection.jpg (100%)
rename {assets => media}/Fig2 - Mapping of Protection in SMM.jpg (100%)
rename {assets => media}/Fig3 - Page table enforced memory layout.jpg (100%)
rename {assets => media}/Fig4 - UEFI memory protection.jpg (100%)
create mode 100644 media/TianocoreTitlePageLogo.jpg
create mode 100644 styles/mobi.css
--
2.29.2.windows.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 1/2] Clean up format and layout to match template
2020-12-11 20:07 [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Michael D Kinney
@ 2020-12-11 20:07 ` Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 2/2] Update to match template and enable GitBook action Michael D Kinney
2020-12-15 7:53 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Yao, Jiewen
2 siblings, 0 replies; 4+ messages in thread
From: Michael D Kinney @ 2020-12-11 20:07 UTC (permalink / raw)
To: devel; +Cc: Jiewen Yao, Vincent Zimmer, Laurie Jarlstrom, Kevin Shaw
* Move figures from assets directory to media directory
* Remove non ASCII characters
* Add Figure to TOC
* Add missing file headers
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Vincent Zimmer <vincent.zimmer@intel.com>
Cc: Laurie Jarlstrom <laurie.jarlstrom@intel.com>
Cc: Kevin Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
README.md | 36 ++---
SUMMARY.md | 38 +++++
assets/Tianocore_logo2.png | Bin 7360 -> 0 bytes
authors.md | 31 ++++
book.json | 9 ++
cover.jpg | Bin 0 -> 211343 bytes
executive-summary.md | 31 ++++
glossary.md | 68 ++++++---
.../Fig1- SMRAM memory protection.jpg | Bin
.../Fig2 - Mapping of Protection in SMM.jpg | Bin
...g3 - Page table enforced memory layout.jpg | Bin
.../Fig4 - UEFI memory protection.jpg | Bin
media/TianocoreTitlePageLogo.jpg | Bin 0 -> 44499 bytes
memory-protection-in-SMM.md | 134 ++++++++++--------
memory-protection-in-uefi.md | 104 +++++++++-----
references.md | 50 +++++--
16 files changed, 359 insertions(+), 142 deletions(-)
delete mode 100644 assets/Tianocore_logo2.png
create mode 100644 book.json
create mode 100644 cover.jpg
rename {assets => media}/Fig1- SMRAM memory protection.jpg (100%)
rename {assets => media}/Fig2 - Mapping of Protection in SMM.jpg (100%)
rename {assets => media}/Fig3 - Page table enforced memory layout.jpg (100%)
rename {assets => media}/Fig4 - UEFI memory protection.jpg (100%)
create mode 100644 media/TianocoreTitlePageLogo.jpg
diff --git a/README.md b/README.md
index 6bc2a7b..f470c6e 100644
--- a/README.md
+++ b/README.md
@@ -29,30 +29,29 @@
-->
-![](/assets/Tianocore_logo2.png)
+<img src="media/TianocoreTitlePageLogo.jpg" width="300" />
-#####White Paper
+### {{ book.title }}
+{% if book.draft %}
+** DRAFT FOR REVIEW **
+{% else %}
+** {{ book.version }} **
+{% endif %}
-# A Tour Beyond BIOS - Memory Protection in UEFI BIOS
+** {{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }} **
+{% if book.udkrelease %}
+** {{ book.udkrelease }} **
+{% endif %}
-
- _Jiewen Yao_,
+ _Jiewen Yao_,
_Intel Corporation_
-
-
-
-
- _Vincent J. Zimmer _,
+ _Vincent J. Zimmer _,
_Intel Corporation_
-
-
-##### March 2017
-
-## Acknowledgements
+### Acknowledgements
Redistribution and use in source (original document form) and 'compiled'
forms (converted to PDF, epub, HTML and other formats) with or without
@@ -78,7 +77,12 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-Copyright © 2007-2017, Intel Corporation. All rights reserved.
+Copyright (c) 2007-2017, Intel Corporation. All rights reserved.
+
+### Revision History
+| Revision | Revision History | Date |
+| ---------- | ------------------ | ----------- |
+| 1.0 | Initial release. | March 2017 |
diff --git a/SUMMARY.md b/SUMMARY.md
index dcce47b..b0250f0 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -1,3 +1,34 @@
+<!--- @file
+ Summary
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# Summary
* [Introduction](README.md)
@@ -8,3 +39,10 @@
* [References](references.md)
* [Authors](authors.md)
+---
+
+* Figures
+ * [Figure 1 - SMRAM memory protection](memory-protection-in-SMM.md#figure-1---smram-memory-protection)
+ * [Figure 2 - Mapping of Protection in SMM](memory-protection-in-SMM.md#figure-2---mapping-of-protection-in-smm)
+ * [Figure 3 - Page table enforced memory layout](memory-protection-in-SMM.md#figure-3---page-table-enforced-memory-layout)
+ * [Figure 4 - UEFI memory protection](memory-protection-in-uefi.md#figure-4---uefi-memory-protection)
diff --git a/assets/Tianocore_logo2.png b/assets/Tianocore_logo2.png
deleted file mode 100644
index 0ba21dc7a651ee64ee3449415aabb667022276b8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7360
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
diff --git a/authors.md b/authors.md
index f120a97..b3987ff 100644
--- a/authors.md
+++ b/authors.md
@@ -1,3 +1,34 @@
+<!--- @file
+ Authors
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
## Authors
Jiewen Yao [jiewen.yao@intel.com](mailto:jiewen.yao@intel.com) is EDK II BIOS architect, EDK II FSP package maintainer, EDK II TPM2 module maintainer, EDK II ACPI S3 module maintainer, with Software and Services Group at Intel Corporation. Jiewen is member of UEFI Security Sub-team and PI Security Sub-team in the UEFI Forum.
diff --git a/book.json b/book.json
new file mode 100644
index 0000000..b553eb5
--- /dev/null
+++ b/book.json
@@ -0,0 +1,9 @@
+{
+ "variables" : {
+ "draft" : "yes",
+ "title" : "A Tour Beyond BIOS - Memory Protection in UEFI BIOS",
+ "version" : "Revision 1.0"
+ },
+ "plugins": ["puml-aleung"],
+ "pluginsConfig": {}
+}
diff --git a/cover.jpg b/cover.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..24cb5a036ec8107ea3a7e37df38b045baca492de
GIT binary patch
literal 211343
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
G==m>^QGss&
literal 0
HcmV?d00001
diff --git a/executive-summary.md b/executive-summary.md
index da95613..19c0569 100644
--- a/executive-summary.md
+++ b/executive-summary.md
@@ -1,3 +1,34 @@
+<!--- @file
+ Executive Summary
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# Executive Summary
## Introduction
**Data execution protection (DEP)** is intended to prevent an application or service from executing code from a non-executable memory region. This helps prevent certain exploits that store code via a buffer overflow. [[WindowsHeap][1]] shows 4 of 7 exploitation techniques that can be mitigated by DEP and ASLR (Address Space Layout Randomization). [[DEP][2]] also shows 14 of 19 exploits from popular exploit kits that fail with DEP enabled. Besides Windows, the Unix/Linux community also has similar non-executable protection [[PaX][3]].
diff --git a/glossary.md b/glossary.md
index f1eb67c..81a3bbb 100644
--- a/glossary.md
+++ b/glossary.md
@@ -1,51 +1,81 @@
+<!--- @file
+ Glossary
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# Glossary
-ASLR – Address Space Layout Randomization.
+ASLR - Address Space Layout Randomization.
BDA - BIOS Data Area.
-CSM – Compatibility Support Module.
+CSM - Compatibility Support Module.
-DEP – Data Execution Protection.
+DEP - Data Execution Protection.
EBDA - Extended BIOS Data Area
-HOB – Hand off block. See [[PI][1]].
+HOB - Hand off block. See [[PI][1]].
-MMIO – Memory Mapped I/O.
+MMIO - Memory Mapped I/O.
-NX – No Execution. See DEP.
+NX - No Execution. See DEP.
-PE/COFF – Portable Executable and Common Object File Format. The executable file format for UEFI.
+PE/COFF - Portable Executable and Common Object File Format. The executable file format for UEFI.
ROP - Return-oriented programming
-RO – Read Only.
+RO - Read Only.
-RW – Read/Write.
+RW - Read/Write.
-PCD – Platform configuration database. See [[PI][1]].
+PCD - Platform configuration database. See [[PI][1]].
-PF – Page Fault Exception.
+PF - Page Fault Exception.
-PI – Platform Initialization. Volume 1-5 of the UEFI PI specifications.
+PI - Platform Initialization. Volume 1-5 of the UEFI PI specifications.
-SPI – Serial Peripheral Interface.
+SPI - Serial Peripheral Interface.
TSS - Task-state segment. See [[IA32 SDM][2]].
-UEFI – Unified Extensible Firmware Interface. Firmware interface between the platform and the operating system. Predominate interfaces are in the boot services (BS) or pre-OS. Few runtime (RT) services.
+UEFI - Unified Extensible Firmware Interface. Firmware interface between the platform and the operating system. Predominate interfaces are in the boot services (BS) or pre-OS. Few runtime (RT) services.
-VTd – Virtualization for Directed IO. See [[VTd][3]]
+VTd - Virtualization for Directed IO. See [[VTd][3]]
-WP – Write Protect.
+WP - Write Protect.
-XD – Execution Disable. See DEP.
+XD - Execution Disable. See DEP.
-XP – Execution Protected. See DEP.
+XP - Execution Protected. See DEP.
[1]: http://uefi.org "PI"
-
[2]: https://software.intel.com/en-us/articles/intel-sdm "IA32SDM"
[3]: http://www.intel.com/content/www/us/en/embedded/technology/virtualization/vt-directed-io-spec.html "Vtd"
diff --git a/assets/Fig1- SMRAM memory protection.jpg b/media/Fig1- SMRAM memory protection.jpg
similarity index 100%
rename from assets/Fig1- SMRAM memory protection.jpg
rename to media/Fig1- SMRAM memory protection.jpg
diff --git a/assets/Fig2 - Mapping of Protection in SMM.jpg b/media/Fig2 - Mapping of Protection in SMM.jpg
similarity index 100%
rename from assets/Fig2 - Mapping of Protection in SMM.jpg
rename to media/Fig2 - Mapping of Protection in SMM.jpg
diff --git a/assets/Fig3 - Page table enforced memory layout.jpg b/media/Fig3 - Page table enforced memory layout.jpg
similarity index 100%
rename from assets/Fig3 - Page table enforced memory layout.jpg
rename to media/Fig3 - Page table enforced memory layout.jpg
diff --git a/assets/Fig4 - UEFI memory protection.jpg b/media/Fig4 - UEFI memory protection.jpg
similarity index 100%
rename from assets/Fig4 - UEFI memory protection.jpg
rename to media/Fig4 - UEFI memory protection.jpg
diff --git a/media/TianocoreTitlePageLogo.jpg b/media/TianocoreTitlePageLogo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d84f1b7eb4a947cba4a05bc687fbac3af7d5ed39
GIT binary patch
literal 44499
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
literal 0
HcmV?d00001
diff --git a/memory-protection-in-SMM.md b/memory-protection-in-SMM.md
index ce89639..e9f21bb 100644
--- a/memory-protection-in-SMM.md
+++ b/memory-protection-in-SMM.md
@@ -1,13 +1,44 @@
+<!--- @file
+ Memory Protection in SMM
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# Memory Protection in SMM
-The SMM is an isolated execution environment according to Intel® 64 and IA-32 Architectures Software Developer’s Manual [[IA32SDM][1]]. The UEFI Platform Initialization [[PI][2]] specification volume 4 defines the SMM infrastructure. Figure 1 shows the SMM memory protection. **RO** designates read-only memory. **XD **designates execution-disabled memory.
+The SMM is an isolated execution environment according to Intel(R) 64 and IA-32 Architectures Software Developer's Manual [[IA32SDM][1]]. The UEFI Platform Initialization [[PI][2]] specification volume 4 defines the SMM infrastructure. Figure 1 shows the SMM memory protection. **RO** designates read-only memory. **XD **designates execution-disabled memory.
-![](/assets/Fig1- SMRAM memory protection.jpg)
-
-Figure 1 - SMRAM memory protection
+![](/media/Fig1- SMRAM memory protection.jpg)
+
+###### Figure 1 - SMRAM memory protection
## Protection for PE image
-In UEFI/PI firmware, the SMM image is a normal PE/COFF image loaded by the SmmCore. If a given section of the SMM image is page aligned, it may be protected according to the section attributes, such as read-only for the code and non-executable for data. See the top right of figure 1.
+In UEFI/PI firmware, the SMM image is a normal PE/COFF image loaded by the SmmCore. If a given section of the SMM image is page aligned, it may be protected according to the section attributes, such as read-only for the code and non-executable for data. See the top right of Figure 1.
In EDK II, the PiSmmCore (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c) checks the PE image alignment and builds an `EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE ` (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h) to record such information. If the PI SMM image is not page aligned, this table will not be published. If the `EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE` is published, that means the `EfiRuntimeServicesCode` contains only code and it is ``EFI_MEMORY_RO``, and the `EfiRuntimeServicesData` contains only data and it is `EFI_MEMORY_XP`.
@@ -15,8 +46,8 @@ Later the PiSmmCpu driver (https://github.com/tianocore/edk2/blob/master/UefiCpu
There are several assumptions to support the PE image protection in SMM:
-1. The PE code section and data sections are not merged. If those 2 sections are merged, a #PF exception might be generated because the CPU might try to write a RO data item in the data section or execute a non-executable (NX) instruction in code section.
-2. The PE image can be protected if it is page aligned. There should not be any self-modified-code in the code region. If there is, a platform should not set this PE image to be page aligned.
+1. The PE code section and data sections are not merged. If those 2 sections are merged, a #PF exception might be generated because the CPU might try to write a RO data item in the data section or execute a non-executable (NX) instruction in code section.
+2. The PE image can be protected if it is page aligned. There should not be any self-modified-code in the code region. If there is, a platform should not set this PE image to be page aligned.
A platform may disable the XD in the UEFI environment, but this does not impact the SMM environment. The SMM environment may choose to always enable the XD upon SMM entry, and restore the XD state at the SMM exit point.
@@ -40,31 +71,31 @@ The IDT defines the entry point of the exception handler. If the IDT is updated,
This work is done by `PatchGdtIdtMap()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c.
-However, the IA32 version GDT cannot be set to read-only if the stack guard feature is enabled. (https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArch.c) The reason is that the IA32 stack guard needs to use a "_task switch_" to switch the stack, and the task switch needs to write the GDT and Task-State Segment (TSS). The X64 version of the GDT does not have such a problem because the X64 stack guard uses “_interrupt stack table (IST)_” to switch the stack. For details of the stack switch and exceptions, please refer to [[IA32SDM][1]].
+However, the IA32 version GDT cannot be set to read-only if the stack guard feature is enabled. (https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArch.c) The reason is that the IA32 stack guard needs to use a "_task switch_" to switch the stack, and the task switch needs to write the GDT and Task-State Segment (TSS). The X64 version of the GDT does not have such a problem because the X64 stack guard uses "_interrupt stack table (IST)_" to switch the stack. For details of the stack switch and exceptions, please refer to [[IA32SDM][1]].
### Page Table
In an X86 CPU, we rely on the page table to set up the read-only or non-executable region. In order to prevent the page table itself from being updated, we may need to set the page table itself to be read-only.
The work is done at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c `SetPageTableAttributes()`.
-However, setting a page table to be read-only may break the original dynamic paging feature in SMM. There is a (PCD) ```PcdCpuSmmStaticPageTable ``` to determine if the platform wants to enable the static page table or the dynamic page table.
+However, setting a page table to be read-only may break the original dynamic paging feature in SMM. There is a (PCD) `PcdCpuSmmStaticPageTable` to determine if the platform wants to enable the static page table or the dynamic page table.
-If ```PcdCpuSmmStaticPageTable``` is FALSE, the PiSmmCpu uses the original dynamic paging policy, namely the the PiSmmCpu only sets 4GiB paging by default. If the PiSmmCpu needs to access above 4GiB memory locations, a page fault exception (#PF) exception is triggered and an above-4GiB mapping is created in the page fault handler.
+If `PcdCpuSmmStaticPageTable` is FALSE, the PiSmmCpu uses the original dynamic paging policy, namely the the PiSmmCpu only sets 4GiB paging by default. If the PiSmmCpu needs to access above 4GiB memory locations, a page fault exception (#PF) exception is triggered and an above-4GiB mapping is created in the page fault handler.
-If ```PcdCpuSmmStaticPageTable``` is TRUE, the PiSmmCpu will try to set the read-only attribute for the page table.
+If `PcdCpuSmmStaticPageTable` is TRUE, the PiSmmCpu will try to set the read-only attribute for the page table.
Figure 2 shows the mapping of the protection.
-![](/assets/Fig2 - Mapping of Protection in SMM.jpg)
+![](/media/Fig2 - Mapping of Protection in SMM.jpg)
-Figure 2 Mapping of Protection in SMM
+###### Figure 2 - Mapping of Protection in SMM
## Life cycle of the protection
-In a normal boot, the page table based protection is configured by the PiSmmCpu driver just after the SmmReadyToLock event by ```PerformRemainingTasks()``` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c. All read-only data must be ready before ```SmmReadyToLock```.
+In a normal boot, the page table based protection is configured by the PiSmmCpu driver just after the SmmReadyToLock event by `PerformRemainingTasks()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c. All read-only data must be ready before `SmmReadyToLock`.
-In an S3 resume, the protection is disabled during SMBASE relocation because the PiSmmCpu needs to set up the environment. The PiSmmCpu uses SmmS3Cr3, which is generated by ```InitSmmS3Cr3()``` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c with 4G paging only. After the SMBASE relocation is done, all the protection takes effect up receipt of the next SMI by ```PerformPreTasks()``` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c.
+In an S3 resume, the protection is disabled during SMBASE relocation because the PiSmmCpu needs to set up the environment. The PiSmmCpu uses SmmS3Cr3, which is generated by `InitSmmS3Cr3()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c with 4G paging only. After the SMBASE relocation is done, all the protection takes effect up receipt of the next SMI by `PerformPreTasks()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c.
-If there is an additional lock that needs to be set, it can be done in ```SmmCpuFeaturesCompleteSmmReadyToLock()``` API (defined in https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h).
+If there is an additional lock that needs to be set, it can be done in `SmmCpuFeaturesCompleteSmmReadyToLock()` API (defined in https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Include/Library/SmmCpuFeaturesLib.h).
## SMRAM Size Overhead
### PE image
@@ -80,29 +111,29 @@ In order to protect the page table itself, we must use the static page table ins
The size of the dynamic paging is fixed. We need 6 fixed pages (24K) and 8 on-demand pages (32K). The total size of the page table is 56K in this case.
The size of the static page table depends upon 2 things: 1) 1G paging capability, 2) max supported address bit. A rough estimation is below:
-1. If 1G paging is supported,
-* 32 bit addressing need (1+1+4) pages = 24K. (still use 2M paging for below 4G memory)
-* 39 bit addressing need (1+1+4) pages = 24K.
-* 48 bit addressing need (1+512) pages = 2M.
+1. If 1G paging is supported,
+* 32 bit addressing need (1+1+4) pages = 24K. (still use 2M paging for below 4G memory)
+* 39 bit addressing need (1+1+4) pages = 24K.
+* 48 bit addressing need (1+512) pages = 2M.
* If 1G paging is not supported, 2M paging is used.
-* 32 bit addressing need (1+1+4) pages = 24K.
-* 39 bit addressing need (1+1+512) pages = 2M.
-* 48 bit addressing need (1+512+512*512) pages = 1G. < - This seems ****not**** acceptable.
+* 32 bit addressing need (1+1+4) pages = 24K.
+* 39 bit addressing need (1+1+512) pages = 2M.
+* 48 bit addressing need (1+512+512*512) pages = 1G. < - This seems ****not**** acceptable.
-The maximum address bit is determined by the (CPU_HOB) if it is present, or the physical address bit returned by the CPUID instruction if the CPU_HOB is not present. (https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c, ```CalculateMaximumSupportAddress()```) A platform may set the CPU_HOB based upon the addressing capability of the memory controller or the CPU.
+The maximum address bit is determined by the (CPU_HOB) if it is present, or the physical address bit returned by the CPUID instruction if the CPU_HOB is not present. (https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c, `CalculateMaximumSupportAddress()`) A platform may set the CPU_HOB based upon the addressing capability of the memory controller or the CPU.
## Performance Overhead
-1. The SMRAM protection setup is a one-time activity. It happens just after the SmmReadyToLock event. We do not observe too much impact to the system firmware boot performance. The activity only takes some small number of milliseconds.
+1. The SMRAM protection setup is a one-time activity. It happens just after the SmmReadyToLock event. We do not observe too much impact to the system firmware boot performance. The activity only takes some small number of milliseconds.
-2. The SMRAM runtime protection is based upon the page table. No additional CPU instruction is needed. As such, there is zero SMM runtime performance impact to have this protection.
+2. The SMRAM runtime protection is based upon the page table. No additional CPU instruction is needed. As such, there is zero SMM runtime performance impact to have this protection.
## Non SMRAM access in SMM
Besides the SMRAM, the SMM memory protection also limits the access to the non-SMRAM region.
First, the non-SMRAM region must be set to be non-executable because the SMM entities should not call any code outside SMRAM. Code outside of SMRAM might be controlled by malicious software.
-This protection work is done by ```InitPaging()``` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c
+This protection work is done by `InitPaging()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c
Second, because of the security concerns regarding SMM entities accessing VMM memory, [[WindowsWSMT][3]] [[Wsmt.docx][4]] and [[MicrosoftHV][5]] introduced the Windows SMM Security Mitigations Table (WSMT). A platform needs to report the WSMT table in order to declare that the SMI handler will validate the SMM communication buffer.
@@ -113,13 +144,13 @@ A better way is to use an active check. The PiSmmCpu driver sets the non-fixed D
As such, if a platform SMI handler does not include the check recommended in [[SecureSmmComm][6]], the system will get #PF exception within SMM on such an attack.
-This protection work is done by ```SetUefiMemMapAttributes()``` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c.
+This protection work is done by `SetUefiMemMapAttributes()` at https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c.
Figure 3 shows final image layout.
- ![](/assets/Fig3 - Page table enforced memory layout.jpg)
+ ![](/media/Fig3 - Page table enforced memory layout.jpg)
-Figure 3 Page table enforced memory layout
+###### Figure 3 - Page table enforced memory layout
The assumption for non-SMRAM access in SMM is described in [[SecureSmmComm][6]].
Besides that, this solution assumes that all DRAM regions are added to the Global Coherency Domain (GCD) management before EndOfDxe, so that the UEFI memory map can return all DRAM regions. If there are more regions added to the GCD after EndOfDxe, those regions are not set to not-present in the page table.
@@ -128,52 +159,41 @@ NOTE: The SMM does not set the not-present bit for the GCD **EfiGcdMemoryTypeNon
## Limitation
Setting up RO and NX attribute for SMRAM is a good enhancement to prevent a code overriding attack. However it has some limitations:
-1. It cannot resist a Return-Oriented-Programming (ROP) attack. [[ROP][8]]. We might need ASLR to mitigate the ROP attack. [[ASLR][7]] With the code region randomized, an attacker cannot accurately predict the location of instructions in order to leverage gadgets.
-2. Not all important data structure are set to Read-Only. This is the current SMM driver limitation. The SMM driver can be updated to allocate the important structures to be read-only instead of a read-write global variable.
+1. It cannot resist a Return-Oriented-Programming (ROP) attack. [[ROP][8]]. We might need ASLR to mitigate the ROP attack. [[ASLR][7]] With the code region randomized, an attacker cannot accurately predict the location of instructions in order to leverage gadgets.
+2. Not all important data structure are set to Read-Only. This is the current SMM driver limitation. The SMM driver can be updated to allocate the important structures to be read-only instead of a read-write global variable.
To set not-present bit for non-fixed DRAM region in SmmReadyToLock is a good enhancement to enforce the protection policy. However, it cannot cover below cases:
-1. Memory Hot Plug. Take a server platform as the example, A RAS server may hot plug more DRAM during OS runtime, and rely on SMM to initialize those DRAM. This SMM Memory Initialization module may need access the DRAM for the memory test.
-2. Memory Mapped IO (MMIO). Ideally, not all MMIO regions are configured to be accessible to SMM. Some MMIO BARs are important such as VTd or SPI controller. VTd BAR is important because OS need setup VTd to configuration the DMA protection. SPI controller BAR is important because BIOS SMM handler need access it to program the flash device. It should be a platform policy to configure which one should be accessible. The SMI handler must consider the case that the MMIO BAR might be modified by the malicious software and check if the MMIO BAR is in the valid region.
+1. Memory Hot Plug. Take a server platform as the example, A RAS server may hot plug more DRAM during OS runtime, and rely on SMM to initialize those DRAM. This SMM Memory Initialization module may need access the DRAM for the memory test.
+2. Memory Mapped IO (MMIO). Ideally, not all MMIO regions are configured to be accessible to SMM. Some MMIO BARs are important such as VTd or SPI controller. VTd BAR is important because OS need setup VTd to configuration the DMA protection. SPI controller BAR is important because BIOS SMM handler need access it to program the flash device. It should be a platform policy to configure which one should be accessible. The SMI handler must consider the case that the MMIO BAR might be modified by the malicious software and check if the MMIO BAR is in the valid region.
## Compatibility Considerations
-1. So far, we have not observed self-modified-code in SMM image or executable code in data section. As such, we believe the PE image protection is compatible.
+1. So far, we have not observed self-modified-code in SMM image or executable code in data section. As such, we believe the PE image protection is compatible.
-2. The protection for the SMM communication buffer may cause a #PF exception in SMM if the SMI handler does not perform the check recommended in [[SecureSmmComm][6]].
+2. The protection for the SMM communication buffer may cause a #PF exception in SMM if the SMI handler does not perform the check recommended in [[SecureSmmComm][6]].
-3. Some legacy Compatibility Support Module (CSM) drivers may need co-work with SMM module. Then the SMM driver need access the legacy region. As such these memory regions should be allocated as ReservedMemory, such as BIOS data area (BDA) or extended BIOS data area (EBDA).
+3. Some legacy Compatibility Support Module (CSM) drivers may need co-work with SMM module. Then the SMM driver need access the legacy region. As such these memory regions should be allocated as ReservedMemory, such as BIOS data area (BDA) or extended BIOS data area (EBDA).
## Call for action
In order to support SMM memory protection, the firmware need configure SMM driver to be page aligned:
-1. Override link flags below to support SMM memory protection.
- ```css
+1. Override link flags below to support SMM memory protection.
+ ```
[BuildOptions.common.EDKII.DXE_SMM_DRIVER,
- BuildOptions.common.EDKII.SMM_CORE]
- MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
- GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
- ```
+ BuildOptions.common.EDKII.SMM_CORE]
+ MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
+ GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
+ ```
-2. Evaluate if SMRAM size is big enough.
+2. Evaluate if SMRAM size is big enough.
#### Summary
This section introduces the memory protection in SMM.
[1]: https://software.intel.com/en-us/articles/intel-sdm "IA32SDM"
[2]: http://uefi.org "PI Spec"
-
-
-
[3]: https://msdn.microsoft.com/en-us/library/windows/hardware/dn495660(v=vs.85).aspx#wsmt "WindowsWSMT"
-
[4]: http://download.microsoft.com/download/1/8/A/18A21244-EB67-4538-BAA2-1A54E0E490B6/WSMT.docx "WindowsWSMT docx"
-[5]: https://msdn.microsoft.com/en-us/library/windows/hardware/dn614617 "MicrosoftHV"
-[6]: https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Secure_SMM_Communication.pdf "SecureSmmComm"
-
-
+[5]: https://msdn.microsoft.com/en-us/library/windows/hardware/dn614617 "MicrosoftHV"
+[6]: https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Secure_SMM_Communication.pdf "SecureSmmComm"
[7]: https://en.wikipedia.org/wiki/Address_space_layout_randomization "ASLR"
-
[8]: https://en.wikipedia.org/wiki/Return-oriented_programming "ROP"
-
-
-
-
diff --git a/memory-protection-in-uefi.md b/memory-protection-in-uefi.md
index 635e0f8..255663d 100644
--- a/memory-protection-in-uefi.md
+++ b/memory-protection-in-uefi.md
@@ -1,24 +1,55 @@
+<!--- @file
+ Memory Protection in UEFI
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# Memory Protection in UEFI
In the white paper [[MemMap][1]], we discussed to how to report the runtime memory attribute by using `EFI_MEMORY_ATTRIBUTES_TABLE`, so that OS can apply the protection for the runtime code and data. This may bring some compatibility concerns if we choose to adopt the full DEP protection for the entire UEFI memory.
In order to resolve the compatibility concerns, we can define a policy-based setting to enable partial NX and RO protection for the UEFI memory region. The detailed information will be discussed below.
-![](/assets/Fig4 - UEFI memory protection.jpg)
-
-Figure 4 - UEFI memory protection
+![](/media/Fig4 - UEFI memory protection.jpg)
+
+###### Figure 4 - UEFI memory protection
## Protection for PE image
The DXE core may apply a pre-defined policy to set up the NX attribute for the PE data region and the RO attribute for the PE code region.
-1. The image is loaded by the UEFI boot service - `LoadImage()`. If an image is loaded in some other way, the DXE core does not have such knowledge and the DXE core cannot apply any protection.
-2. The image section is page aligned. If an image is not page aligned, the DXE core cannot apply the page level protection.
-3. The protection policy can be based upon a PCD ‘PcdImageProtectionPolicy`. (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.dec) Whenever a new image is loaded, the DxeCore checks the source of the image and then decides the policy of the protection. The policy could be to enable the protection if the sections are aligned, or disable the protection. The platform may choose the policy based upon the need. For example, if a platform thinks the image from the firmware volume should be capable of being protection, it can set protection for IMAGE_FROM_FV. But if a platform is not sure about a PCI option ROM or a file system on disk, it can set no-protection.
+1. The image is loaded by the UEFI boot service - `LoadImage()`. If an image is loaded in some other way, the DXE core does not have such knowledge and the DXE core cannot apply any protection.
+2. The image section is page aligned. If an image is not page aligned, the DXE core cannot apply the page level protection.
+3. The protection policy can be based upon a PCD `PcdImageProtectionPolicy`. (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.dec) Whenever a new image is loaded, the DxeCore checks the source of the image and then decides the policy of the protection. The policy could be to enable the protection if the sections are aligned, or disable the protection. The platform may choose the policy based upon the need. For example, if a platform thinks the image from the firmware volume should be capable of being protection, it can set protection for IMAGE_FROM_FV. But if a platform is not sure about a PCI option ROM or a file system on disk, it can set no-protection.
There are assumptions for the PE image protection in UEFI:
-1. [Same as SMM] The PE code section and data sections are not merged. If those 2 sections are merged, a #PF exception might be generated because the CPU may try to write a RO data in data section or execute a NX instruction in the code section.
-2. [Same as SMM] The PE image can be protected if it is page aligned. There should not be any self-modifying-code in the code region. If there is, a platform should not set this PE image to be page aligned.
-3. A platform may not disable the XD in the DXE phase. If a platform disables the XD in the DXE phase, the X86 page table will become invalid because the XD bit in page table becomes a RESERVED bit. The consequence is that a #PF exception will be generated. If a platform wants to disable the XD bit, it must happen in the PEI phase.
+1. [Same as SMM] The PE code section and data sections are not merged. If those 2 sections are merged, a #PF exception might be generated because the CPU may try to write a RO data in data section or execute a NX instruction in the code section.
+2. [Same as SMM] The PE image can be protected if it is page aligned. There should not be any self-modifying-code in the code region. If there is, a platform should not set this PE image to be page aligned.
+3. A platform may not disable the XD in the DXE phase. If a platform disables the XD in the DXE phase, the X86 page table will become invalid because the XD bit in page table becomes a RESERVED bit. The consequence is that a #PF exception will be generated. If a platform wants to disable the XD bit, it must happen in the PEI phase.
In EDK II, the DXE core image services calls `ProtectUefiImage()` on image load and `UnprotectUefiImage()` on image unload. (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Image/Image.c) Then `ProtectUefiImageCommon()` (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c) calls `GetUefiImageProtectionPolicy()` to check the image source and protection policy and parses PE alignment. If all checks pass, `SetUefiImageProtectionAttributes()` calls `SetUefiImageMemoryAttributes()`. Finally, `gCpu->SetMemoryAttribute()` sets **EFI_MEMORY_XP** or **EFI_MEMORY_RO** for the new loaded image , or clears the protection for the old unloaded image. When the CPU driver gets the memory attribute setting request, it updates page table.
@@ -26,22 +57,22 @@ The X86 CPU driver https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/CpuD
The ARM CPU driver https://github.com/tianocore/edk2/blob/master/ArmPkg/Drivers/CpuDxe/CpuMmuCommon.c `CpuSetMemoryAttributes()` also has similar capability.
-If an image is loaded before CPU_ARCH protocol is ready, the DXE core just skips the setting. Later these images protection will be set in CPU_ARCH callback function – `MemoryProtectionCpuArchProtocolNotify() `(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c).
+If an image is loaded before CPU_ARCH protocol is ready, the DXE core just skips the setting. Later these images protection will be set in CPU_ARCH callback function - `MemoryProtectionCpuArchProtocolNotify()`(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c).
In `ExitBootServices` event, `MemoryProtectionExitBootServicesCallback() `(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c) is invoked to unprotect the runtime image, because the runtime image code relocation need write code segment at `SetVirtualAddressMap()`.
## Protection for stack and heap
-[[UEFI][2]] specification allows
->"Stack may be marked as non-executable in identity mapped page tables."
+[[UEFI][2]] specification allows
+>"Stack may be marked as non-executable in identity mapped page tables."
As such, we set up the NX stack (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/DxeIplPeim/X64/VirtualMemory.c, `CreateIdentityMappingPageTables()`).
-The heap protection is based upon the policy, because we already observed some unexpected usage in [[MemMap][1]] white paper. A platform needs to configure a PCD `PcdDxeNxMemoryProtectionPolicy`
+The heap protection is based upon the policy, because we already observed some unexpected usage in [[MemMap][1]] white paper. A platform needs to configure a PCD `PcdDxeNxMemoryProtectionPolicy`
(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/MdeModulePkg.dec) to indicate which type of memory can be set to NX in the page table. The DxeCore `ApplyMemoryProtectionPolicy()` (https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c) consumes the PCD after the memory allocation service and sets NX attribute for the allocated memory by using CPU_ARCH protocol.
-Before CPU_ARCH protocol is ready, the protection takes no effect. In CPU_ARCH callback function – `MemoryProtectionCpuArchProtocolNotify() `(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c), the `InitializeDxeNxMemoryProtectionPolicy()` is called to get current memory map and setup the NX protection.
+Before CPU_ARCH protocol is ready, the protection takes no effect. In CPU_ARCH callback function - `MemoryProtectionCpuArchProtocolNotify() `(https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c), the `InitializeDxeNxMemoryProtectionPolicy()` is called to get current memory map and setup the NX protection.
In addition, we may use some special techniques, such as the guard page, to apply the protection for the allocated memory in order to detect a buffer overflow. This is discussed in [[SecurityEnhancement][3]] white paper.
@@ -58,10 +89,10 @@ The UEFI firmware does not own page tables after `ExitBootServices()`, so the OS
## Size Overhead
-1. Runtime memory overhead (visible to OS)
-: The size overhead of the runtime PE image is the same as the overhead of the SMM PE image. If a platform has n runtime images, the average amount overhead is `6K * n`.
-2. Boot time memory overhead (invisible to OS)
-: The size of the overhead for the boot time PE image is the same as the overhead of the SMM PE image. If a platform has n boot time images, the average overhead is `6K * n`.
+1. Runtime memory overhead (visible to OS)
+: The size overhead of the runtime PE image is the same as the overhead of the SMM PE image. If a platform has n runtime images, the average amount overhead is `6K * n`.
+2. Boot time memory overhead (invisible to OS)
+: The size of the overhead for the boot time PE image is the same as the overhead of the SMM PE image. If a platform has n boot time images, the average overhead is `6K * n`.
If the NX protection for data is enabled, the size of the page table is increased because we need set fine granularity page level protection.
@@ -70,10 +101,10 @@ The size overhead of the boot time page table is also same as for the SMM static
## Limitation
The protection in the UEFI is limited to the PE image and the stack at this moment because of the compatibility concerns. The limitations of the UEFI memory protection are:
-1. Not all images are protected to be NX and RO. The protection is based upon the policy.
-2. Not all heap regions are protected to be NX due to the compatibility concern. We observed that both Windows boot loader and Linux boot loader may use the LoaderData type for the code. The heap protection is based upon the policy.
-3. [Same as SMM] The protection cannot resist ROP attack.
-4. [Same as SMM] Not all important data structures are set to ReadOnly.
+1. Not all images are protected to be NX and RO. The protection is based upon the policy.
+2. Not all heap regions are protected to be NX due to the compatibility concern. We observed that both Windows boot loader and Linux boot loader may use the LoaderData type for the code. The heap protection is based upon the policy.
+3. [Same as SMM] The protection cannot resist ROP attack.
+4. [Same as SMM] Not all important data structures are set to ReadOnly.
## Compatibility Consideration
A platform may need to evaluate and select the image protection policy based upon the capability of the platform image, Option ROM, and OS loader. For platform images, the Compatibility Support Module (CSM) and the EDK-I Compatibility Package (ECP) modules should be considered. If a platform observes the compatibility issues, it should choose 1) to disable the protection, or 2) to fix the compatibility issue and enable the protection.
@@ -81,36 +112,31 @@ A platform may need to evaluate and select the image protection policy based upo
## Call for action
In order to support UEFI memory protection, the firmware need configure UEFI driver to be page aligned:
-1. Override link flags below to support UEFI runtime attribute table, so that OS can protect the runtime memory.
-```css
+1. Override link flags below to support UEFI runtime attribute table, so that OS can protect the runtime memory.
+```
[BuildOptions.IA32.EDKII.DXE_RUNTIME_DRIVER, BuildOptions.X64.EDKII.DXE_RUNTIME_DRIVER]
-MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
+MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
```
-2. Override link flags below to support UEFI memory protection.
-```css
-[BuildOptions.common.EDKII.DXE_DRIVER,
-BuildOptions.common.EDKII.DXE_CORE,
+2. Override link flags below to support UEFI memory protection.
+```
+[BuildOptions.common.EDKII.DXE_DRIVER,
+BuildOptions.common.EDKII.DXE_CORE,
BuildOptions.common.EDKII.UEFI_DRIVER, BuildOptions.common.EDKII.UEFI_APPLICATION]
-MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
+MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
```
-3. Evaluate if the UEFI memory size is big enough to hold the split page table.
+3. Evaluate if the UEFI memory size is big enough to hold the split page table.
-4. Evaluate if the DXE image can be protected.
+4. Evaluate if the DXE image can be protected.
-5. Set proper `gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy`.
-
-6. Set proper `gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy`.
+5. Set proper `gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy`.
+6. Set proper `gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy`.
#### Summary
This section introduces the memory protection in UEFI.
[1]: https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Memory_Map_And_Practices_in_UEFI_BIOS_V2.pdf "MemMap"
-
-
[2]: http://uefi.org "UEFI"
-
-
[3]: https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Securiy_Enhancement_to_Mitigate_Buffer_Overflow_in_UEFI.pdf "Security Enhancment"
\ No newline at end of file
diff --git a/references.md b/references.md
index 23894e0..c9ffab7 100644
--- a/references.md
+++ b/references.md
@@ -1,10 +1,41 @@
+<!--- @file
+ References
+
+ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+ Redistribution and use in source (original document form) and 'compiled'
+ forms (converted to PDF, epub, HTML and other formats) with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1) Redistributions of source code (original document form) must retain the
+ above copyright notice, this list of conditions and the following
+ disclaimer as the first lines of this file unmodified.
+
+ 2) Redistributions in compiled form (transformed to other DTDs, converted to
+ PDF, epub, HTML and other formats) must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL TIANOCORE PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
# References
[ASLR] Address Space Layout Randmization, https://en.wikipedia.org/wiki/Address_space_layout_randomization
-[DEP] Exploit Mitigation Improvements in Windows 8, Ken Johnson, Ma, Miller, http://media.blackhat.com/bh-us-12/Briefings/M_Miller/BH_US_12_Miller_Exploit_Mitigation_Slides.pdf
+[DEP] Exploit Mitigation Improvements in Windows 8, Ken Johnson, Ma, Miller, http://media.blackhat.com/bh-us-12/Briefings/M_Miller/BH_US_12_Miller_Exploit_Mitigation_Slides.pdf
-[IA32SDM] Intel® 64 and IA-32 Architectures Software Developer’s Manual, www.intel.com https://software.intel.com/en-us/articles/intel-sdm
+[IA32SDM] Intel(R) 64 and IA-32 Architectures Software Developer's Manual, www.intel.com https://software.intel.com/en-us/articles/intel-sdm
[MemMap] A Tour Beyond BIOS Memory Map And Practices in UEFI BIOS, Jiewen Yao, Vincent Zimmer, 2016 https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Memory_Map_And_Practices_in_UEFI_BIOS_V2.pdf
@@ -12,25 +43,22 @@
[ROP] Return-oriented programming, https://en.wikipedia.org/wiki/Return-oriented_programming
-[SecureSmmComm] A Tour Beyond BIOS Secure SMM Communication, Jiewen Yao, Vincent Zimmer, Star Zeng, 2016, https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Secure_SMM_Communication.pdf
+[SecureSmmComm] A Tour Beyond BIOS Secure SMM Communication, Jiewen Yao, Vincent Zimmer, Star Zeng, 2016, https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Secure_SMM_Communication.pdf
[SecurityEnhancement] A Tour Beyond BIOS Securiy Enhancement to Mitigate Buffer Overflow in UEFI, Jiewen Yao, Vincent Zimmer, 2016, https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Securiy_Enhancement_to_Mitigate_Buffer_Overflow_in_UEFI.pdf
[SecurityDesign] A Tour Beyond BIOS Security Design Guide in EDK II, Jiewen Yao, Vincent Zimmer, 2016, https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Security_Design_Guide_in_EDK_II.pdf
-[UEFI] Unified Extensible Firmware Interface (UEFI) Specification, Version 2.6
-www.uefi.org
+[UEFI] Unified Extensible Firmware Interface (UEFI) Specification, Version 2.6
+www.uefi.org
-[VTd] Intel® Virtualization Technology for Directed I/O: Spec, http://www.intel.com/content/www/us/en/embedded/technology/virtualization/vt-directed-io-spec.html
+[VTd] Intel(R) Virtualization Technology for Directed I/O: Spec, http://www.intel.com/content/www/us/en/embedded/technology/virtualization/vt-directed-io-spec.html
[WindowsHeap] Preventing the exploitation of user mode heap corruption vulnerabilities, 2009, https://blogs.technet.microsoft.com/srd/2009/08/04/preventing-the-exploitation-of-user-mode-heap-corruption-vulnerabilities/
[WindowsInternal] Windows Internals, 6th edition, Mark E. Russinovich, David A. Solomon, Alex Ionescu, 2012, Microsoft Press. ISBN-13: 978-0735648739/978-0735665873
[WindowsWSMT] Windows SMM Security Table, https://msdn.microsoft.com/en-us/library/windows/hardware/dn495660(v=vs.85).aspx#wsmt
-http://download.microsoft.com/download/1/8/A/18A21244-EB67-4538-BAA2-1A54E0E490B6/WSMT.docx
-
-[MicrosoftHV] Microsoft Hypervisor Requirements, https://msdn.microsoft.com/en-us/library/windows/hardware/dn614617
-
+http://download.microsoft.com/download/1/8/A/18A21244-EB67-4538-BAA2-1A54E0E490B6/WSMT.docx
-
+[MicrosoftHV] Microsoft Hypervisor Requirements, https://msdn.microsoft.com/en-us/library/windows/hardware/dn614617
--
2.29.2.windows.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 2/2] Update to match template and enable GitBook action
2020-12-11 20:07 [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 1/2] Clean up format and layout to match template Michael D Kinney
@ 2020-12-11 20:07 ` Michael D Kinney
2020-12-15 7:53 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Yao, Jiewen
2 siblings, 0 replies; 4+ messages in thread
From: Michael D Kinney @ 2020-12-11 20:07 UTC (permalink / raw)
To: devel; +Cc: Jiewen Yao, Vincent Zimmer, Laurie Jarlstrom, Kevin Shaw
* Add layout directory to match template
* Update CSS styles to match template
* Add GitBook Action
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Vincent Zimmer <vincent.zimmer@intel.com>
Cc: Laurie Jarlstrom <laurie.jarlstrom@intel.com>
Cc: Kevin Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
.bookignore | 3 +
.github/workflows/gitbook-action.yml | 39 +++++
.gitignore | 10 +-
_layouts/ebook/page.html | 42 +++++
| 17 ++
| 14 ++
_layouts/ebook/summary.html | 98 ++++++++++++
_layouts/layout.html | 27 ++++
| 17 ++
| 31 ++++
_layouts/website/languages.html | 19 +++
_layouts/website/layout.html | 28 ++++
_layouts/website/page.html | 86 +++++++++++
_layouts/website/summary.html | 61 ++++++++
styles/epub.css | 221 ++------------------------
styles/mobi.css | 50 ++++++
styles/pdf.css | 221 +++-----------------------
styles/website.css | 223 +++------------------------
18 files changed, 591 insertions(+), 616 deletions(-)
create mode 100644 .bookignore
create mode 100644 .github/workflows/gitbook-action.yml
create mode 100644 _layouts/ebook/page.html
create mode 100644 _layouts/ebook/pdf_footer.html
create mode 100644 _layouts/ebook/pdf_header.html
create mode 100644 _layouts/ebook/summary.html
create mode 100644 _layouts/layout.html
create mode 100644 _layouts/website/footer.html
create mode 100644 _layouts/website/header.html
create mode 100644 _layouts/website/languages.html
create mode 100644 _layouts/website/layout.html
create mode 100644 _layouts/website/page.html
create mode 100644 _layouts/website/summary.html
create mode 100644 styles/mobi.css
diff --git a/.bookignore b/.bookignore
new file mode 100644
index 0000000..ed716f0
--- /dev/null
+++ b/.bookignore
@@ -0,0 +1,3 @@
+/.github
+.gitignore
+.bookignore
diff --git a/.github/workflows/gitbook-action.yml b/.github/workflows/gitbook-action.yml
new file mode 100644
index 0000000..917b0d7
--- /dev/null
+++ b/.github/workflows/gitbook-action.yml
@@ -0,0 +1,39 @@
+name: 'Gitbook Action Build'
+on:
+ push:
+ branches:
+ - master
+ - release/*
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout action
+ uses: actions/checkout@v2
+ - name: Get Branch
+ run: |
+ raw=$(git branch -r --contains ${{ github.ref }})
+ branch=${raw/ origin\/}
+ pubdir=${branch/master/draft}
+ pubdir=${pubdir////-}
+ echo "ON_PUSH_BRANCH_NAME=$branch" >> $GITHUB_ENV
+ echo "ON_PUSH_PUBDIR=$pubdir" >> $GITHUB_ENV
+ - name: Gitbook Action
+ uses: zanderzhao/gitbook-action@v1.2.4
+ with:
+ token: ${{secrets.GITBOOK_ACTION_PERSONAL_TOKEN}}
+ source_branch: ${{env.ON_PUSH_BRANCH_NAME}}
+ publish_branch: gh-pages
+ publish_dir: ${{env.ON_PUSH_PUBDIR}}
+ publish_remove_last_build: true
+ gitbook_pdf: true
+ gitbook_pdf_dir: /
+ gitbook_pdf_name: ${{ github.event.repository.name }}-${{env.ON_PUSH_PUBDIR}}
+ gitbook_epub: true
+ gitbook_epub_dir: /
+ gitbook_epub_name: ${{ github.event.repository.name }}-${{env.ON_PUSH_PUBDIR}}
+ gitbook_mobi: true
+ gitbook_mobi_dir: /
+ gitbook_mobi_name: ${{ github.event.repository.name }}-${{env.ON_PUSH_PUBDIR}}
diff --git a/.gitignore b/.gitignore
index 1a366fb..e9c50d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,12 +5,12 @@
## Dependency directory
## Commenting this out is preferred by some people, see
## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git
-node_modules
+/node_modules
# Book build output
-_book
+/_book
# eBook build output
-*.epub
-*.mobi
-*.pdf
\ No newline at end of file
+/book.epub
+/book.mobi
+/book.pdf
\ No newline at end of file
diff --git a/_layouts/ebook/page.html b/_layouts/ebook/page.html
new file mode 100644
index 0000000..9dec3b5
--- /dev/null
+++ b/_layouts/ebook/page.html
@@ -0,0 +1,42 @@
+{% extends "layout.html" %}
+
+{% block title %}{{ page.title }}{% endblock %}
+{% block description %}{{ page.description }}{% endblock %}
+
+{% block style %}
+ {### Include theme css before plugins css ###}
+ {% if not fileExists(config.styles.print) %}
+ {% if options.format %}
+ <link rel="stylesheet" href="{{ (options.format + ".css")|resolveAsset }}">
+ {% else %}
+ <link rel="stylesheet" href="{{ "ebook.css"|resolveAsset }}">
+ {% endif %}
+ {% endif %}
+
+ {{ super() }}
+
+ {### Custom stylesheets for the book ###}
+
+ {% for type, style in config.styles %}
+ {% if fileExists(style) and (type == "ebook" or type == "print" or type == options.format) %}
+ <link rel="stylesheet" href="{{ style|resolveFile }}">
+ {% endif %}
+ {% endfor %}
+{% endblock %}
+
+{% block body %}
+<div class="page">
+ {% block page %}
+ <h1 class="book-chapter book-chapter-{{ page.depth }}">{{ page.title }}</h1>
+ {% if options.format == "mobi" %}
+ <div>
+ {{ page.content|safe }}
+ </div>
+ {% else %}
+ <div class="section">
+ {{ page.content|safe }}
+ </div>
+ {% endif %}
+ {% endblock %}
+</div>
+{% endblock %}
--git a/_layouts/ebook/pdf_footer.html b/_layouts/ebook/pdf_footer.html
new file mode 100644
index 0000000..709fa57
--- /dev/null
+++ b/_layouts/ebook/pdf_footer.html
@@ -0,0 +1,17 @@
+{% extends "./page.html" %}
+
+{% block body %}
+<div class="pdf-footer">
+ {% if book.draft %}
+ <p>
+ <div style="position:absolute;text-align:left">DRAFT FOR REVIEW [{{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }}]</div>
+ <div style="text-align:right">{{ page.num }}</div>
+ </p>
+ {% else %}
+ <p>
+ <div style="position:absolute;text-align:left">{{ book.version }}</div>
+ <div style="text-align:right">{{ page.num }}</div>
+ </p>
+ {% endif %}
+</div>
+{% endblock %}
--git a/_layouts/ebook/pdf_header.html b/_layouts/ebook/pdf_header.html
new file mode 100644
index 0000000..05c7450
--- /dev/null
+++ b/_layouts/ebook/pdf_header.html
@@ -0,0 +1,14 @@
+{% extends "./page.html" %}
+
+{% block body %}
+<div class="pdf-header">
+ <p>
+ {% if book.draft %}
+ <div style="position:absolute;text-align:left">{{ book.title }}[DRAFT]</div>
+ {% else %}
+ <div style="position:absolute;text-align:left">{{ book.title }}</div>
+ {% endif %}
+ <div style="text-align:right">{{ page.title }}</div>
+ </p>
+</div>
+{% endblock %}
diff --git a/_layouts/ebook/summary.html b/_layouts/ebook/summary.html
new file mode 100644
index 0000000..946e8cb
--- /dev/null
+++ b/_layouts/ebook/summary.html
@@ -0,0 +1,98 @@
+{% extends "./page.html" %}
+
+{% block title %}{{ "SUMMARY"|t }}{% endblock %}
+
+{% macro articles(_articles) %}
+ {% for article in _articles %}
+ {% if options.format == "mobi" %}
+ <blockquote>
+ {% else %}
+ <li>
+ {% endif %}
+ <span class="inner">
+ {% if article.path or article.url %}
+ {% if article.path %}
+ <a href="{{ article.path|contentURL }}{{ article.anchor }}">{{ article.title }}</a>
+ {% else %}
+ <a target="_blank" href="{{ article.url }}">{{ article.title }}</a>
+ {% endif %}
+ {% else %}
+ <span>{{ article.title }}</span>
+ {% endif %}
+ {% if 0 %}
+ <span class="page">{{ article.level }}</span>
+ {% endif %}
+ </span>
+ {% if article.articles.length > 0 %}
+ {% if options.format == "mobi" %}
+ <blockquote>
+ {{ articles(article.articles) }}
+ </blockquote>
+ {% else %}
+ <ol>
+ {{ articles(article.articles) }}
+ </ol>
+ {% endif %}
+ {% endif %}
+ {% if options.format == "mobi" %}
+ </blockquote>
+ {% else %}
+ </li>
+ {% endif %}
+ {% endfor %}
+{% endmacro %}
+
+{% block page %}
+{% if options.format == "mobi" %}
+<div>
+{% else %}
+<div class="section toc">
+{% endif %}
+ <h1>{{ "SUMMARY"|t }}</h1>
+ {% if options.format == "mobi" %}
+ <blockquote>
+ {% else %}
+ <ol>
+ {% endif %}
+ {% for part in summary.parts %}
+ {% if part.title %}
+ {% if options.format == "mobi" %}
+ <blockquote>
+ <span>{{ part.title }}</span>
+ </blockquote>
+ {% else %}
+ <li class="part-title">
+ <span>{{ part.title }}</span>
+ </li>
+ {% endif %}
+ {% endif %}
+ {{ articles(part.articles) }}
+
+ {% if not loop.last and not options.format == "mobi" %}
+ <li class="divider"></li>
+ {% endif %}
+ {% endfor %}
+
+ {% if glossary.path %}
+ {% if options.format == "mobi" %}
+ <blockquote>
+ <span class="inner">
+ <a href="{{ ('/' + glossary.path)|contentURL }}">{{ "GLOSSARY"|t }}</a>
+ </span>
+ </blockquote>
+ {% else %}
+ <li>
+ <span class="inner">
+ <a href="{{ ('/' + glossary.path)|contentURL }}">{{ "GLOSSARY"|t }}</a>
+ </span>
+ </li>
+ {% endif %}
+ {% endif %}
+ {% if options.format == "mobi" %}
+ </blockquote>
+ {% else %}
+ </ol>
+ {% endif %}
+</div>
+{% endblock %}
+
diff --git a/_layouts/layout.html b/_layouts/layout.html
new file mode 100644
index 0000000..884574c
--- /dev/null
+++ b/_layouts/layout.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html lang="{{ config.language }}" {% if page.dir == "rtl" %}dir="rtl"{% endif %}>
+ <head>
+ <meta charset="UTF-8">
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <title>{% block title %}{{ config.title|d("GitBook", true) }}{% endblock %}</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="description" content="{% block description %}{% endblock %}">
+ <meta name="generator" content="GitBook {{ gitbook.version }}">
+ {% if config.author %}<meta name="author" content="{{ config.author }}">{% endif %}
+ {% if config.isbn %}<meta name="identifier" content="{{ config.isbn }}" scheme="ISBN">{% endif %}
+ {% block style %}
+ {% for resource in plugins.resources.css %}
+ {% if resource.url %}
+ <link rel="stylesheet" href="{{ resource.url }}">
+ {% else %}
+ <link rel="stylesheet" href="{{ resource.path|resolveAsset }}">
+ {% endif %}
+ {% endfor %}
+ {% endblock %}
+ {% block head %}{% endblock %}
+ </head>
+ <body>
+ {% block body %}{% endblock %}
+ {% block javascript %}{% endblock %}
+ </body>
+</html>
--git a/_layouts/website/footer.html b/_layouts/website/footer.html
new file mode 100644
index 0000000..c37da01
--- /dev/null
+++ b/_layouts/website/footer.html
@@ -0,0 +1,17 @@
+{% block book_footer %}
+<div>
+ <hr>
+ {% if book.draft %}
+ <h2>
+ <div style="position:absolute;text-align:left">{{ book.title }}</div>
+ <div style="position:absolute;width:100%;text-align:center">DRAFT [{{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }}]</div>
+ <div style="text-align:right">{{ book.version }}</div>
+ </h2>
+ {% else %}
+ <h2>
+ <div style="position:absolute;text-align:left">{{ book.title }}</div>
+ <div style="text-align:right">{{ book.version }}</div>
+ </h2>
+ {% endif %}
+</div>
+{% endblock %}
--git a/_layouts/website/header.html b/_layouts/website/header.html
new file mode 100644
index 0000000..2e5971c
--- /dev/null
+++ b/_layouts/website/header.html
@@ -0,0 +1,31 @@
+{% block book_header %}
+<div class="book-header" role="navigation">
+ {% if glossary.path %}
+ <a href="{{ ('/' + glossary.path)|resolveFile }}" class="btn pull-left" aria-label="{{ "GLOSSARY_OPEN"|t }}"><i class="fa fa-sort-alpha-asc"></i></a>
+ {% endif %}
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="{{ "/"|resolveFile }}" >{{ page.title }}</a>
+ </h1>
+</div>
+<div>
+ <!--
+ <img style="float:left; align:middle; height:2em" src="media/TianocoreTitlePageLogo.jpg"/>
+ -->
+ {% if book.draft %}
+ <h2>
+ <div style="position:absolute;text-align:left">{{ book.title }}</div>
+ <div style="position:absolute;width:100%;text-align:center">DRAFT [{{ gitbook.time|date('MM/DD/YYYY hh:mm:ss') }}]</div>
+ <div style="text-align:right">{{ book.version }}</div>
+ </h2>
+ {% else %}
+ <h2>
+ <div style="position:absolute;text-align:left">{{ book.title }}</div>
+ <div style="text-align:right">{{ book.version }}</div>
+ </h2>
+ {% endif %}
+ <hr>
+</div>
+{% endblock %}
diff --git a/_layouts/website/languages.html b/_layouts/website/languages.html
new file mode 100644
index 0000000..a9d43be
--- /dev/null
+++ b/_layouts/website/languages.html
@@ -0,0 +1,19 @@
+{% extends "./layout.html" %}
+
+{% block title %}{{ "LANGS_CHOOSE"|t }} · {{ super() }}{% endblock %}
+
+{% block body %}
+<div class="book-langs-index" role="navigation">
+ <div class="inner">
+ <h3>{{ "LANGS_CHOOSE"|t }}</h3>
+
+ <ul class="languages">
+ {% for lang in languages.list %}
+ <li>
+ <a href="{{ (lang.id + "/README.md")|contentURL }}">{{ lang.title }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
+</div>
+{% endblock %}
diff --git a/_layouts/website/layout.html b/_layouts/website/layout.html
new file mode 100644
index 0000000..5fa7fe8
--- /dev/null
+++ b/_layouts/website/layout.html
@@ -0,0 +1,28 @@
+{% extends "layout.html" %}
+
+{% block head %}
+ {{ super() }}
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ "images/apple-touch-icon-precomposed-152.png"|resolveAsset }}">
+ <link rel="shortcut icon" href="{{ "images/favicon.ico"|resolveAsset }}" type="image/x-icon">
+{% endblock %}
+
+{% block style %}
+ {### Include theme css before plugins css ###}
+ <link rel="stylesheet" href="{{ "style.css"|resolveAsset }}">
+
+ {{ super() }}
+
+ {### Custom stylesheets for the book ###}
+
+ {% for type, style in config.styles %}
+ {% if fileExists(style) and type == "website" %}
+ <link rel="stylesheet" href="{{ style|resolveFile }}">
+ {% endif %}
+ {% endfor %}
+{% endblock %}
+
+{% block body %}{% endblock %}
diff --git a/_layouts/website/page.html b/_layouts/website/page.html
new file mode 100644
index 0000000..d78a348
--- /dev/null
+++ b/_layouts/website/page.html
@@ -0,0 +1,86 @@
+{% extends "./layout.html" %}
+
+{% block title %}{{ page.title }} · {{ super() }}{% endblock %}
+
+{% block description %}{{ page.description }}{% endblock %}
+
+{% block head %}
+ {{ super() }}
+ {% if page.next and page.next.path %}
+ <link rel="next" href="{{ page.next.path|resolveFile }}" />
+ {% endif %}
+ {% if page.previous and page.previous.path %}
+ <link rel="prev" href="{{ page.previous.path|resolveFile }}" />
+ {% endif %}
+{% endblock %}
+
+{% block javascript %}
+ <script src="{{ "gitbook.js"|resolveAsset }}"></script>
+ <script src="{{ "theme.js"|resolveAsset }}"></script>
+ {% for resource in plugins.resources.js %}
+ {% if resource.url %}
+ <script src="{{ resource.url }}"></script>
+ {% else %}
+ <script src="{{ resource.path|resolveAsset }}"></script>
+ {% endif %}
+ {% endfor %}
+{% endblock %}
+
+{% block body %}
+<div class="book">
+ <div class="book-summary">
+ {% block book_sidebar %}
+ {% block search_input %}{% endblock %}
+ {% block book_summary %}
+ <nav role="navigation">
+ {% include "website/summary.html" %}
+ </nav>
+ {% endblock %}
+ {% endblock %}
+ </div>
+
+ <div class="book-body">
+ {% block book_body %}
+ <div class="body-inner">
+ {% block book_inner %}
+ {% include "website/header.html" %}
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+ {% block search_results %}
+ <section class="normal markdown-section">
+ {% block page %}
+ {{ page.content|safe }}
+ {% endblock %}
+ </section>
+ {% endblock %}
+ </div>
+ </div>
+
+ {% include "website/footer.html" %}
+ {% endblock %}
+ </div>
+
+ {% block book_navigation %}
+ {% if page.previous and page.previous.path %}
+ <a href="{{ page.previous.path|resolveFile }}{{ page.previous.anchor }}" class="navigation navigation-prev {% if not (page.next and page.next.path) %}navigation-unique{% endif %}" aria-label="Previous page: {{ page.previous.title }}">
+ <i class="fa fa-angle-left"></i>
+ </a>
+ {% endif %}
+ {% if page.next and page.next.path %}
+ <a href="{{ page.next.path|resolveFile }}{{ page.next.anchor }}" class="navigation navigation-next {% if not (page.previous and page.previous.path) %}navigation-unique{% endif %}" aria-label="Next page: {{ page.next.title }}">
+ <i class="fa fa-angle-right"></i>
+ </a>
+ {% endif %}
+ {% endblock %}
+ {% endblock %}
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({{ template.getJSContext()|dump|safe }});
+ });
+ </script>
+</div>
+{% endblock %}
diff --git a/_layouts/website/summary.html b/_layouts/website/summary.html
new file mode 100644
index 0000000..e43c954
--- /dev/null
+++ b/_layouts/website/summary.html
@@ -0,0 +1,61 @@
+{% macro articles(_articles) %}
+ {% for article in _articles %}
+ <li class="chapter {% if article.path == file.path and not article.anchor %}active{% endif %}" data-level="{{ article.level }}" {% if article.path %}data-path="{{ article.path|resolveFile }}"{% endif %}>
+ {% if article.path and getPageByPath(article.path) %}
+ <a href="{{ article.path|resolveFile }}{{ article.anchor }}">
+ {% elif article.url %}
+ <a target="_blank" href="{{ article.url }}">
+ {% else %}
+ <span>
+ {% endif %}
+ {% if article.level != "0" and config.pluginsConfig['theme-default'].showLevel %}
+ <b>{{ article.level }}.</b>
+ {% endif %}
+ {{ article.title }}
+ {% if article.path or article.url %}
+ </a>
+ {% else %}
+ </span>
+ {% endif %}
+
+ {% if article.articles.length > 0 %}
+ <ul class="articles">
+ {{ articles(article.articles, file, config) }}
+ </ul>
+ {% endif %}
+ </li>
+ {% endfor %}
+{% endmacro %}
+
+<ul class="summary">
+ {% set _divider = false %}
+ {% if config.links.sidebar %}
+ {% for linkTitle, link in config.links.sidebar %}
+ {% set _divider = true %}
+ <li>
+ <a href="{{ link }}" target="_blank" class="custom-link">{{ linkTitle }}</a>
+ </li>
+ {% endfor %}
+ {% endif %}
+
+ {% if _divider %}
+ <li class="divider"></li>
+ {% endif %}
+
+ {% for part in summary.parts %}
+ {% if part.title %}
+ <li class="header">{{ part.title }}</li>
+ {% elif not loop.first %}
+ <li class="divider"></li>
+ {% endif %}
+ {{ articles(part.articles, file, config) }}
+ {% endfor %}
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ {{ "GITBOOK_LINK"|t }}
+ </a>
+ </li>
+</ul>
diff --git a/styles/epub.css b/styles/epub.css
index b9729f1..56f8394 100644
--- a/styles/epub.css
+++ b/styles/epub.css
@@ -1,235 +1,48 @@
-/* CSS for pdf */
-
-body {
- background: #f1f1f1;
- border-top: 10px solid #999999;
- font-size: 12pt;
-}
-
-#mainbody {
- margin-left: auto;
- margin-right: auto;
- width: 60em;
-}
-
-#topbar {
- top: 0;
- left: 0;
- bottom: 0;
- width: 60em;
- background: url("../images/header-bg.jpg") no-repeat;
- border-top: 10px solid #ff6600;
- margin-top: -10px;
- float: left;
-}
-
-#topbar.front-page {
- height: 13em;
-}
-
-#topbar #logo {
- position: relative;
- top: 85px;
- left: 20px;
-}
-
-#topbar #small-logo {
- position: relative;
- left: 20px;
- padding: 0.1em 0 0.1em 0;
- height: 3em;
-}
-
-#sidebar {
- float: left;
- z-index: 1;
- top: 0;
- left: 0;
- bottom: 0;
- padding: 2em 0.5em 0 0.5em;
- width: 9em;
-}
-
-div.main-page.content {
- float: left;
- width: 35em;
-}
-
-div.main-page.news {
- float: right;
- width: 20em;
-}
-
-div.main-page.news h2 {
- border-top: 10px solid #365f91;
- border-bottom: 1px solid #333333;
- color: #333333;
- padding: 0.5em;
- margin: 0;
-}
-
-div.main-page.news ul {
- margin: 0;
- list-style: none;
- list-style-image: none;
-}
-
-div.main-page.news ul li {
- border-bottom: 1px solid #333333;
- padding: 0.5em;
- color: #777777;
-}
-
-div.main-page.news ul li a {
- font-weight: bold;
-}
-
-div.news-page.news-item {
- border-top: 1px solid #777777;
- width: 100%;
- padding: 0;
- margin: 0;
-}
-
-#content {
- margin: 0px;
- padding: 2em 1em;
- font-family: Helvetica;
- color: #40494d;
- background-color: #fff;
- width: 100%;
- max-width: 60em;
- display: block;
- float: left;
-}
-
-#content #buttons a {
- background: #ff6600;
- color: #333333;
- font-family: "Helvetica";
- text-transform: uppercase;
- font-size: 15px;
- display: inline-block;
- padding: 8px 25px;
- margin: 10px 20px 10px 0;
-}
-
-#footer {
- background: #999999;
- margin-bottom: 60px;
- width: 100%;
- float: left;
- padding: 0.5em 1em;
-}
-#footer #footer-inner {
- height: 2em;
- background: url("../images/footer-icon.svg") no-repeat right center;
-}
-#footer #footer-inner a {
- color: white;
- font-size: 14px;
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #footer #footer-inner {
- padding: 10px 20px;
- background-position: right 20px center;
- }
-}
-@media (min-width: 64em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 3, "location": 2, "grid": 20px 630px 20px 310px 20px, "gutter": 0.25, "style": "opposite", "start row": false, "end row": false, "fixed gutter": true, "split gutter": false, "gutter property": "padding", "options": (("both": null)));
- width: 96%;
- float: left;
- margin-right: -100%;
- margin-left: 2%;
- clear: none;
- padding-right: 0.25;
- }
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 1, "location": 1, "grid": 1, "gutter": 0.25, "style": "opposite", "start row": true, "end row": true, "fixed gutter": false, "split gutter": false, "gutter property": "margin", "options": ((null: null)));
- width: 100%;
- float: right;
- margin-left: 0;
- margin-right: 0;
- clear: none;
- }
-}
-
-ul {
- font-family: sans-serif;
- list-style-type: square;
- padding: 0 0 0 0;
- margin: 0.3em 0 0 1.5em;
-}
-
-.site-menu {
- color: #a0a0a0;
-}
-
-a.site-menu:hover {
- color: #4048c0;
-}
-
-a {
- color: #0860A8;
- text-decoration: none;
-}
-
-a:hover {
- color: #0860A8;
- text-decoration: underline;
+p {
+ font-family: sans, sans-serif, Arial;
}
-p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
+body {
+ font-family: sans, sans-serif, Arial;
}
h1 {
color: #0860A8;
- font-family: "Helvetica";
font-weight: normal;
font-size: 190%;
text-transform: uppercase;
- margin-top: 0;
- margin-bottom: 0;
}
h2 {
color: #0860A8;
- font-family: "Helvetica";
font-size: 130%
}
h3 {
color: #0860A8;
font-weight: bold;
- font-size: 90%
+ font-size: 100%
}
h4 {
color: #0860A8;
- font-weight: bold;
font-size: 90%
}
-.t_projects th {
- background-color: #DBEBFF;
+h5 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 90%;
}
-.t_projects table, th, td {
- border: 1px solid #ccc;
- font-size: 80%;
+h6 {
+ font-weight: bold;
+ font-size: 90%;
+ text-align: center;
}
-.section.toc {
- display: none;
+img {
+ max-width: 100%;
+ height: auto;
}
-
-/* TODO: Consider css for
- *
- * .posts .site .header .title .meta .footer .contact .rss .post
- */
-
\ No newline at end of file
+
diff --git a/styles/mobi.css b/styles/mobi.css
new file mode 100644
index 0000000..efa36c5
--- /dev/null
+++ b/styles/mobi.css
@@ -0,0 +1,50 @@
+p {
+ font-family: sans, sans-serif, Arial;
+}
+
+body {
+ font-family: sans, sans-serif, Arial;
+}
+
+h1 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 170%;
+ text-transform: uppercase;
+}
+
+h2 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 160%
+}
+
+h3 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 150%
+}
+
+h4 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 140%
+}
+
+h5 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 130%;
+}
+
+h6 {
+ font-weight: bold;
+ font-size: 100%;
+ text-align: center;
+}
+
+img {
+ max-width: 100%;
+ height: auto;
+}
+
diff --git a/styles/pdf.css b/styles/pdf.css
index 56f3448..56f8394 100644
--- a/styles/pdf.css
+++ b/styles/pdf.css
@@ -1,233 +1,48 @@
-/* CSS for pdf */
-
-body {
- background: #f1f1f1;
- border-top: 10px solid #999999;
- font-size: 12pt;
-}
-
-#mainbody {
- margin-left: auto;
- margin-right: auto;
- width: 60em;
-}
-
-#topbar {
- top: 0;
- left: 0;
- bottom: 0;
- width: 60em;
- background: url("../images/header-bg.jpg") no-repeat;
- border-top: 10px solid #ff6600;
- margin-top: -10px;
- float: left;
-}
-
-#topbar.front-page {
- height: 13em;
-}
-
-#topbar #logo {
- position: relative;
- top: 85px;
- left: 20px;
-}
-
-#topbar #small-logo {
- position: relative;
- left: 20px;
- padding: 0.1em 0 0.1em 0;
- height: 3em;
-}
-
-#sidebar {
- float: left;
- z-index: 1;
- top: 0;
- left: 0;
- bottom: 0;
- padding: 2em 0.5em 0 0.5em;
- width: 9em;
-}
-
-div.main-page.content {
- float: left;
- width: 35em;
-}
-
-div.main-page.news {
- float: right;
- width: 20em;
-}
-
-div.main-page.news h2 {
- border-top: 10px solid #365f91;
- border-bottom: 1px solid #333333;
- color: #333333;
- padding: 0.5em;
- margin: 0;
-}
-
-div.main-page.news ul {
- margin: 0;
- list-style: none;
- list-style-image: none;
-}
-
-div.main-page.news ul li {
- border-bottom: 1px solid #333333;
- padding: 0.5em;
- color: #777777;
-}
-
-div.main-page.news ul li a {
- font-weight: bold;
-}
-
-div.news-page.news-item {
- border-top: 1px solid #777777;
- width: 100%;
- padding: 0;
- margin: 0;
-}
-
-#content {
- margin: 0px;
- padding: 2em 1em;
- font-family: Helvetica;
- color: #40494d;
- background-color: #fff;
- width: 100%;
- max-width: 60em;
- display: block;
- float: left;
-}
-
-#content #buttons a {
- background: #ff6600;
- color: #333333;
- font-family: "Helvetica";
- text-transform: uppercase;
- font-size: 15px;
- display: inline-block;
- padding: 8px 25px;
- margin: 10px 20px 10px 0;
-}
-
-#footer {
- background: #999999;
- margin-bottom: 60px;
- width: 100%;
- float: left;
- padding: 0.5em 1em;
-}
-#footer #footer-inner {
- height: 2em;
- background: url("../images/footer-icon.svg") no-repeat right center;
-}
-#footer #footer-inner a {
- color: white;
- font-size: 14px;
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #footer #footer-inner {
- padding: 10px 20px;
- background-position: right 20px center;
- }
-}
-@media (min-width: 64em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 3, "location": 2, "grid": 20px 630px 20px 310px 20px, "gutter": 0.25, "style": "opposite", "start row": false, "end row": false, "fixed gutter": true, "split gutter": false, "gutter property": "padding", "options": (("both": null)));
- width: 96%;
- float: left;
- margin-right: -100%;
- margin-left: 2%;
- clear: none;
- padding-right: 0.25;
- }
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 1, "location": 1, "grid": 1, "gutter": 0.25, "style": "opposite", "start row": true, "end row": true, "fixed gutter": false, "split gutter": false, "gutter property": "margin", "options": ((null: null)));
- width: 100%;
- float: right;
- margin-left: 0;
- margin-right: 0;
- clear: none;
- }
-}
-
-ul {
- font-family: sans-serif;
- list-style-type: square;
- padding: 0 0 0 0;
- margin: 0.3em 0 0 1.5em;
-}
-
-.site-menu {
- color: #a0a0a0;
-}
-
-a.site-menu:hover {
- color: #4048c0;
-}
-
-a {
- color: #0860A8;
- text-decoration: none;
-}
-
-a:hover {
- color: #0860A8;
- text-decoration: underline;
+p {
+ font-family: sans, sans-serif, Arial;
}
-p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
+body {
+ font-family: sans, sans-serif, Arial;
}
h1 {
color: #0860A8;
- font-family: "Helvetica";
font-weight: normal;
font-size: 190%;
text-transform: uppercase;
- margin-top: 0;
- margin-bottom: 0;
}
h2 {
color: #0860A8;
- font-family: "Helvetica";
font-size: 130%
}
h3 {
color: #0860A8;
font-weight: bold;
- font-size: 90%
+ font-size: 100%
}
h4 {
color: #0860A8;
- font-weight: bold;
font-size: 90%
}
-
-.t_projects th {
- background-color: #DBEBFF;
+h5 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 90%;
}
-.t_projects table, th, td {
- border: 1px solid #ccc;
- font-size: 80%;
+h6 {
+ font-weight: bold;
+ font-size: 90%;
+ text-align: center;
}
-
-/* TODO: Consider css for
- *
- * .posts .site .header .title .meta .footer .contact .rss .post
- */
-
\ No newline at end of file
+img {
+ max-width: 100%;
+ height: auto;
+}
+
diff --git a/styles/website.css b/styles/website.css
index a0df36a..56f8394 100644
--- a/styles/website.css
+++ b/styles/website.css
@@ -1,233 +1,48 @@
-/* CSS for website */
-/* CSS for website */
-
-body {
- background: #f1f1f1;
- border-top: 10px solid #999999;
- font-size: 12pt;
-}
-
-#mainbody {
- margin-left: auto;
- margin-right: auto;
- width: 60em;
-}
-
-#topbar {
- top: 0;
- left: 0;
- bottom: 0;
- width: 60em;
- background: url("../images/header-bg.jpg") no-repeat;
- border-top: 10px solid #ff6600;
- margin-top: -10px;
- float: left;
-}
-
-#topbar.front-page {
- height: 13em;
-}
-
-#topbar #logo {
- position: relative;
- top: 85px;
- left: 20px;
-}
-
-#topbar #small-logo {
- position: relative;
- left: 20px;
- padding: 0.1em 0 0.1em 0;
- height: 3em;
-}
-
-#sidebar {
- float: left;
- z-index: 1;
- top: 0;
- left: 0;
- bottom: 0;
- padding: 2em 0.5em 0 0.5em;
- width: 9em;
-}
-
-div.main-page.content {
- float: left;
- width: 35em;
-}
-
-div.main-page.news {
- float: right;
- width: 20em;
-}
-
-div.main-page.news h2 {
- border-top: 10px solid #365f91;
- border-bottom: 1px solid #333333;
- color: #333333;
- padding: 0.5em;
- margin: 0;
-}
-
-div.main-page.news ul {
- margin: 0;
- list-style: none;
- list-style-image: none;
-}
-
-div.main-page.news ul li {
- border-bottom: 1px solid #333333;
- padding: 0.5em;
- color: #777777;
-}
-
-div.main-page.news ul li a {
- font-weight: bold;
-}
-
-div.news-page.news-item {
- border-top: 1px solid #777777;
- width: 100%;
- padding: 0;
- margin: 0;
-}
-
-#content {
- margin: 0px;
- padding: 2em 1em;
- font-family: Helvetica;
- color: #40494d;
- background-color: #fff;
- width: 100%;
- max-width: 60em;
- display: block;
- float: left;
-}
-
-#content #buttons a {
- background: #ff6600;
- color: #333333;
- font-family: "Helvetica";
- text-transform: uppercase;
- font-size: 15px;
- display: inline-block;
- padding: 8px 25px;
- margin: 10px 20px 10px 0;
-}
-
-#footer {
- background: #999999;
- margin-bottom: 60px;
- width: 100%;
- float: left;
- padding: 0.5em 1em;
-}
-#footer #footer-inner {
- height: 2em;
- background: url("../images/footer-icon.svg") no-repeat right center;
-}
-#footer #footer-inner a {
- color: white;
- font-size: 14px;
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #footer #footer-inner {
- padding: 10px 20px;
- background-position: right 20px center;
- }
-}
-@media (min-width: 64em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 3, "location": 2, "grid": 20px 630px 20px 310px 20px, "gutter": 0.25, "style": "opposite", "start row": false, "end row": false, "fixed gutter": true, "split gutter": false, "gutter property": "padding", "options": (("both": null)));
- width: 96%;
- float: left;
- margin-right: -100%;
- margin-left: 2%;
- clear: none;
- padding-right: 0.25;
- }
-}
-@media (min-width: 0em) and (max-width: 63.9375em) {
- #page-wrapper #page #footer-inner {
- -sgs-span-settings: ("span": 1, "location": 1, "grid": 1, "gutter": 0.25, "style": "opposite", "start row": true, "end row": true, "fixed gutter": false, "split gutter": false, "gutter property": "margin", "options": ((null: null)));
- width: 100%;
- float: right;
- margin-left: 0;
- margin-right: 0;
- clear: none;
- }
-}
-
-ul {
- font-family: sans-serif;
- list-style-type: square;
- padding: 0 0 0 0;
- margin: 0.3em 0 0 1.5em;
-}
-
-.site-menu {
- color: #a0a0a0;
-}
-
-a.site-menu:hover {
- color: #4048c0;
-}
-
-a {
- color: #0860A8;
- text-decoration: none;
-}
-
-a:hover {
- color: #0860A8;
- text-decoration: underline;
+p {
+ font-family: sans, sans-serif, Arial;
}
-p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
+body {
+ font-family: sans, sans-serif, Arial;
}
h1 {
color: #0860A8;
- font-family: "Helvetica";
font-weight: normal;
font-size: 190%;
text-transform: uppercase;
- margin-top: 0;
- margin-bottom: 0;
}
h2 {
color: #0860A8;
- font-family: "Helvetica";
font-size: 130%
}
h3 {
color: #0860A8;
font-weight: bold;
- font-size: 90%
+ font-size: 100%
}
+
h4 {
color: #0860A8;
- font-weight: bold;
font-size: 90%
}
-
-.t_projects th {
- background-color: #DBEBFF;
+h5 {
+ color: #0860A8;
+ font-weight: bold;
+ font-size: 90%;
}
-.t_projects table, th, td {
- border: 1px solid #ccc;
- font-size: 80%;
+h6 {
+ font-weight: bold;
+ font-size: 90%;
+ text-align: center;
}
-
-/* TODO: Consider css for
- *
- * .posts .site .header .title .meta .footer .contact .rss .post
- */
-
+img {
+ max-width: 100%;
+ height: auto;
+}
+
--
2.29.2.windows.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action
2020-12-11 20:07 [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 1/2] Clean up format and layout to match template Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 2/2] Update to match template and enable GitBook action Michael D Kinney
@ 2020-12-15 7:53 ` Yao, Jiewen
2 siblings, 0 replies; 4+ messages in thread
From: Yao, Jiewen @ 2020-12-15 7:53 UTC (permalink / raw)
To: Kinney, Michael D, devel@edk2.groups.io
Cc: Zimmer, Vincent, Jarlstrom, Laurie, Shaw, Kevin W
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
> -----Original Message-----
> From: Michael D Kinney <michael.d.kinney@intel.com>
> Sent: Saturday, December 12, 2020 4:08 AM
> To: devel@edk2.groups.io
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Zimmer, Vincent
> <vincent.zimmer@intel.com>; Jarlstrom, Laurie <laurie.jarlstrom@intel.com>;
> Shaw, Kevin W <kevin.w.shaw@intel.com>
> Subject: [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2]
> Sync with template add Gitbook Action
>
> * Move figures from assets directory to media directory
> * Remove non ASCII characters
> * Add Figure to TOC
> * Add missing file headers
> * Add layout directory to match template
> * Update CSS styles to match template
> * Add GitBook Action
>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Vincent Zimmer <vincent.zimmer@intel.com>
> Cc: Laurie Jarlstrom <laurie.jarlstrom@intel.com>
> Cc: Kevin Shaw <kevin.w.shaw@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
>
> Michael D Kinney (2):
> Clean up format and layout to match template
> Update to match template and enable GitBook action
>
> .bookignore | 3 +
> .github/workflows/gitbook-action.yml | 39 +++
> .gitignore | 10 +-
> README.md | 36 +--
> SUMMARY.md | 38 +++
> _layouts/ebook/page.html | 42 ++++
> _layouts/ebook/pdf_footer.html | 17 ++
> _layouts/ebook/pdf_header.html | 14 ++
> _layouts/ebook/summary.html | 98 ++++++++
> _layouts/layout.html | 27 +++
> _layouts/website/footer.html | 17 ++
> _layouts/website/header.html | 31 +++
> _layouts/website/languages.html | 19 ++
> _layouts/website/layout.html | 28 +++
> _layouts/website/page.html | 86 +++++++
> _layouts/website/summary.html | 61 +++++
> assets/Tianocore_logo2.png | Bin 7360 -> 0 bytes
> authors.md | 31 +++
> book.json | 9 +
> cover.jpg | Bin 0 -> 211343 bytes
> executive-summary.md | 31 +++
> glossary.md | 68 ++++--
> .../Fig1- SMRAM memory protection.jpg | Bin
> .../Fig2 - Mapping of Protection in SMM.jpg | Bin
> ...g3 - Page table enforced memory layout.jpg | Bin
> .../Fig4 - UEFI memory protection.jpg | Bin
> media/TianocoreTitlePageLogo.jpg | Bin 0 -> 44499 bytes
> memory-protection-in-SMM.md | 134 ++++++-----
> memory-protection-in-uefi.md | 104 +++++---
> references.md | 50 +++-
> styles/epub.css | 221 ++---------------
> styles/mobi.css | 50 ++++
> styles/pdf.css | 221 ++---------------
> styles/website.css | 223 ++----------------
> 34 files changed, 950 insertions(+), 758 deletions(-)
> create mode 100644 .bookignore
> create mode 100644 .github/workflows/gitbook-action.yml
> create mode 100644 _layouts/ebook/page.html
> create mode 100644 _layouts/ebook/pdf_footer.html
> create mode 100644 _layouts/ebook/pdf_header.html
> create mode 100644 _layouts/ebook/summary.html
> create mode 100644 _layouts/layout.html
> create mode 100644 _layouts/website/footer.html
> create mode 100644 _layouts/website/header.html
> create mode 100644 _layouts/website/languages.html
> create mode 100644 _layouts/website/layout.html
> create mode 100644 _layouts/website/page.html
> create mode 100644 _layouts/website/summary.html
> delete mode 100644 assets/Tianocore_logo2.png
> create mode 100644 book.json
> create mode 100644 cover.jpg
> rename {assets => media}/Fig1- SMRAM memory protection.jpg (100%)
> rename {assets => media}/Fig2 - Mapping of Protection in SMM.jpg (100%)
> rename {assets => media}/Fig3 - Page table enforced memory layout.jpg
> (100%)
> rename {assets => media}/Fig4 - UEFI memory protection.jpg (100%)
> create mode 100644 media/TianocoreTitlePageLogo.jpg
> create mode 100644 styles/mobi.css
>
> --
> 2.29.2.windows.2
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-15 7:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-11 20:07 [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 1/2] Clean up format and layout to match template Michael D Kinney
2020-12-11 20:07 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 2/2] Update to match template and enable GitBook action Michael D Kinney
2020-12-15 7:53 ` [tianocore-docs][ATBB-Memory_Protection_in_UEFI_BIOS][Patch 0/2] Sync with template add Gitbook Action Yao, Jiewen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox