Chapter 4: cleared
This commit is contained in:
parent
b257bd1a01
commit
c9d3d90156
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
.PHONY: clean distclean all force_update
|
.PHONY: clean distclean all force_update
|
||||||
.DELETE_ON_ERROR: $(DOC).pdf
|
.DELETE_ON_ERROR: $(DOC).pdf
|
||||||
|
|
||||||
XELATEX=xelatex -shell-escape -interaction=nonstopmode
|
XELATEX=xelatex -shell-escape -halt-on-error -interaction=nonstopmode
|
||||||
DOC=hardware_init_review
|
DOC=hardware_init_review
|
||||||
|
|
||||||
all: $(DOC).pdf
|
all: $(DOC).pdf
|
||||||
|
|
|
@ -56,10 +56,21 @@ note = "[Online; accessed 7-May-2024]"
|
||||||
|
|
||||||
@inbook{BKDG,
|
@inbook{BKDG,
|
||||||
author = {AMD},
|
author = {AMD},
|
||||||
|
institution = {Advanced Micro Devices, Inc.},
|
||||||
number = {42301},
|
number = {42301},
|
||||||
year = {2013},
|
year = {2013},
|
||||||
month = {01},
|
month = {01},
|
||||||
title = {BIOS and Kernel Developer’s Guide (BKDG) for AMD Family 15h Models 00h-0Fh Processors Rev 3.14}
|
title = {BIOS and Kernel Developer’s Guide (BKDG) for AMD Family 15h Models 00h-0Fh Processors Rev 3.14},
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@techreport{amd_fam15h_revision_guide,
|
||||||
|
author = {AMD},
|
||||||
|
institution = {Advanced Micro Devices, Inc.},
|
||||||
|
number = {48931},
|
||||||
|
year = {2013},
|
||||||
|
month = {05},
|
||||||
|
title = {Revision Guide for AMD Family 15h Models 00h-0Fh Rev 3.10}
|
||||||
}
|
}
|
||||||
|
|
||||||
@inbook{SR5690BDG,
|
@inbook{SR5690BDG,
|
||||||
|
|
|
@ -222,6 +222,9 @@
|
||||||
family={AMD},
|
family={AMD},
|
||||||
familyi={A\bibinitperiod}}}%
|
familyi={A\bibinitperiod}}}%
|
||||||
}
|
}
|
||||||
|
\list{institution}{1}{%
|
||||||
|
{Advanced Micro Devices, Inc.}%
|
||||||
|
}
|
||||||
\strng{namehash}{48af4341f745163f945fa838eeabb062}
|
\strng{namehash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{fullhash}{48af4341f745163f945fa838eeabb062}
|
\strng{fullhash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{bibnamehash}{48af4341f745163f945fa838eeabb062}
|
\strng{bibnamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
@ -266,6 +269,32 @@
|
||||||
\verb https://developer.amd.com/
|
\verb https://developer.amd.com/
|
||||||
\endverb
|
\endverb
|
||||||
\endentry
|
\endentry
|
||||||
|
\entry{amd_fam15h_revision_guide}{report}{}
|
||||||
|
\name{author}{1}{}{%
|
||||||
|
{{hash=48af4341f745163f945fa838eeabb062}{%
|
||||||
|
family={AMD},
|
||||||
|
familyi={A\bibinitperiod}}}%
|
||||||
|
}
|
||||||
|
\list{institution}{1}{%
|
||||||
|
{Advanced Micro Devices, Inc.}%
|
||||||
|
}
|
||||||
|
\strng{namehash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\strng{fullhash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\strng{bibnamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\strng{authorbibnamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\strng{authornamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\strng{authorfullhash}{48af4341f745163f945fa838eeabb062}
|
||||||
|
\field{extraname}{6}
|
||||||
|
\field{sortinit}{A}
|
||||||
|
\field{sortinithash}{2f401846e2029bad6b3ecc16d50031e2}
|
||||||
|
\field{labelnamesource}{author}
|
||||||
|
\field{labeltitlesource}{title}
|
||||||
|
\field{month}{05}
|
||||||
|
\field{number}{48931}
|
||||||
|
\field{title}{Revision Guide for AMD Family 15h Models 00h-0Fh Rev 3.10}
|
||||||
|
\field{type}{techreport}
|
||||||
|
\field{year}{2013}
|
||||||
|
\endentry
|
||||||
\entry{SR5690BDG}{inbook}{}
|
\entry{SR5690BDG}{inbook}{}
|
||||||
\name{author}{1}{}{%
|
\name{author}{1}{}{%
|
||||||
{{hash=48af4341f745163f945fa838eeabb062}{%
|
{{hash=48af4341f745163f945fa838eeabb062}{%
|
||||||
|
@ -278,7 +307,7 @@
|
||||||
\strng{authorbibnamehash}{48af4341f745163f945fa838eeabb062}
|
\strng{authorbibnamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{authornamehash}{48af4341f745163f945fa838eeabb062}
|
\strng{authornamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{authorfullhash}{48af4341f745163f945fa838eeabb062}
|
\strng{authorfullhash}{48af4341f745163f945fa838eeabb062}
|
||||||
\field{extraname}{6}
|
\field{extraname}{7}
|
||||||
\field{sortinit}{A}
|
\field{sortinit}{A}
|
||||||
\field{sortinithash}{2f401846e2029bad6b3ecc16d50031e2}
|
\field{sortinithash}{2f401846e2029bad6b3ecc16d50031e2}
|
||||||
\field{labelnamesource}{author}
|
\field{labelnamesource}{author}
|
||||||
|
@ -300,7 +329,7 @@
|
||||||
\strng{authorbibnamehash}{48af4341f745163f945fa838eeabb062}
|
\strng{authorbibnamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{authornamehash}{48af4341f745163f945fa838eeabb062}
|
\strng{authornamehash}{48af4341f745163f945fa838eeabb062}
|
||||||
\strng{authorfullhash}{48af4341f745163f945fa838eeabb062}
|
\strng{authorfullhash}{48af4341f745163f945fa838eeabb062}
|
||||||
\field{extraname}{7}
|
\field{extraname}{8}
|
||||||
\field{sortinit}{A}
|
\field{sortinit}{A}
|
||||||
\field{sortinithash}{2f401846e2029bad6b3ecc16d50031e2}
|
\field{sortinithash}{2f401846e2029bad6b3ecc16d50031e2}
|
||||||
\field{labelnamesource}{author}
|
\field{labelnamesource}{author}
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -3,53 +3,62 @@
|
||||||
\contentsline {chapter}{Abstract}{4}{chapter*.2}%
|
\contentsline {chapter}{Abstract}{4}{chapter*.2}%
|
||||||
\contentsline {chapter}{List of Figures}{7}{chapter*.2}%
|
\contentsline {chapter}{List of Figures}{7}{chapter*.2}%
|
||||||
\contentsline {chapter}{List of Listings}{8}{chapter*.2}%
|
\contentsline {chapter}{List of Listings}{8}{chapter*.2}%
|
||||||
\contentsline {chapter}{\numberline {1}Introduction to firmware and BIOS evolution}{9}{chapter.1}%
|
\contentsline {chapter}{\numberline {1}Introduction to firmware and BIOS evolution}{10}{chapter.1}%
|
||||||
\contentsline {section}{\numberline {1.1}Historical context of BIOS}{9}{section.1.1}%
|
\contentsline {section}{\numberline {1.1}Historical context of BIOS}{10}{section.1.1}%
|
||||||
\contentsline {subsection}{\numberline {1.1.1}Definition and origin}{9}{subsection.1.1.1}%
|
\contentsline {subsection}{\numberline {1.1.1}Definition and origin}{10}{subsection.1.1.1}%
|
||||||
\contentsline {subsection}{\numberline {1.1.2}Functionalities and limitations}{10}{subsection.1.1.2}%
|
\contentsline {subsection}{\numberline {1.1.2}Functionalities and limitations}{11}{subsection.1.1.2}%
|
||||||
\contentsline {section}{\numberline {1.2}Modern BIOS and UEFI}{11}{section.1.2}%
|
\contentsline {section}{\numberline {1.2}Modern BIOS and UEFI}{12}{section.1.2}%
|
||||||
\contentsline {subsection}{\numberline {1.2.1}Transition from traditional BIOS to UEFI (Unified Extensible Firmware Interface)}{11}{subsection.1.2.1}%
|
\contentsline {subsection}{\numberline {1.2.1}Transition from traditional BIOS to UEFI (Unified Extensible Firmware Interface)}{12}{subsection.1.2.1}%
|
||||||
\contentsline {subsection}{\numberline {1.2.2}An other way with \textit {coreboot}}{11}{subsection.1.2.2}%
|
\contentsline {subsection}{\numberline {1.2.2}An other way with \textit {coreboot}}{12}{subsection.1.2.2}%
|
||||||
\contentsline {section}{\numberline {1.3}Shift in firmware responsibilities}{13}{section.1.3}%
|
\contentsline {section}{\numberline {1.3}Shift in firmware responsibilities}{14}{section.1.3}%
|
||||||
\contentsline {chapter}{\numberline {2}Characteristics of ASUS KGPE-D16 mainboard}{14}{chapter.2}%
|
\contentsline {chapter}{\numberline {2}Characteristics of ASUS KGPE-D16 mainboard}{15}{chapter.2}%
|
||||||
\contentsline {section}{\numberline {2.1}Overview of ASUS KGPE-D16 hardware}{15}{section.2.1}%
|
\contentsline {section}{\numberline {2.1}Overview of ASUS KGPE-D16 hardware}{16}{section.2.1}%
|
||||||
\contentsline {section}{\numberline {2.2}Chipset}{16}{section.2.2}%
|
\contentsline {section}{\numberline {2.2}Chipset}{17}{section.2.2}%
|
||||||
\contentsline {section}{\numberline {2.3}Processors}{18}{section.2.3}%
|
\contentsline {section}{\numberline {2.3}Processors}{19}{section.2.3}%
|
||||||
\contentsline {section}{\numberline {2.4}Baseboard Management Controller}{19}{section.2.4}%
|
\contentsline {section}{\numberline {2.4}Baseboard Management Controller}{20}{section.2.4}%
|
||||||
\contentsline {chapter}{\numberline {3}Key components in modern firmware}{21}{chapter.3}%
|
\contentsline {chapter}{\numberline {3}Key components in modern firmware}{22}{chapter.3}%
|
||||||
\contentsline {section}{\numberline {3.1}General structure of coreboot}{21}{section.3.1}%
|
\contentsline {section}{\numberline {3.1}General structure of coreboot}{22}{section.3.1}%
|
||||||
\contentsline {subsection}{\numberline {3.1.1}Bootblock}{22}{subsection.3.1.1}%
|
\contentsline {subsection}{\numberline {3.1.1}Bootblock}{23}{subsection.3.1.1}%
|
||||||
\contentsline {subsection}{\numberline {3.1.2}Romstage}{24}{subsection.3.1.2}%
|
\contentsline {subsection}{\numberline {3.1.2}Romstage}{25}{subsection.3.1.2}%
|
||||||
\contentsline {subsection}{\numberline {3.1.3}Ramstage}{25}{subsection.3.1.3}%
|
\contentsline {subsection}{\numberline {3.1.3}Ramstage}{26}{subsection.3.1.3}%
|
||||||
\contentsline {subsubsection}{\numberline {3.1.3.1}Advanced Configuration and Power Interface}{25}{subsubsection.3.1.3.1}%
|
\contentsline {subsubsection}{\numberline {3.1.3.1}Advanced Configuration and Power Interface}{26}{subsubsection.3.1.3.1}%
|
||||||
\contentsline {subsubsection}{\numberline {3.1.3.2}System Management Mode}{26}{subsubsection.3.1.3.2}%
|
\contentsline {subsubsection}{\numberline {3.1.3.2}System Management Mode}{27}{subsubsection.3.1.3.2}%
|
||||||
\contentsline {subsection}{\numberline {3.1.4}Payload}{26}{subsection.3.1.4}%
|
\contentsline {subsection}{\numberline {3.1.4}Payload}{27}{subsection.3.1.4}%
|
||||||
\contentsline {section}{\numberline {3.2}AMD Platform Security Processor and Intel Management Engine}{27}{section.3.2}%
|
\contentsline {section}{\numberline {3.2}AMD Platform Security Processor and Intel Management Engine}{28}{section.3.2}%
|
||||||
\contentsline {chapter}{\numberline {4}Memory initialization and training}{29}{chapter.4}%
|
\contentsline {chapter}{\numberline {4}Memory initialization and training}{30}{chapter.4}%
|
||||||
\contentsline {section}{\numberline {4.1}Importance of DDR3 Memory Initialization}{29}{section.4.1}%
|
\contentsline {section}{\numberline {4.1}Importance of DDR3 Memory Initialization}{30}{section.4.1}%
|
||||||
\contentsline {subsection}{\numberline {4.1.1}General steps for DDR3 configuration}{30}{subsection.4.1.1}%
|
\contentsline {subsection}{\numberline {4.1.1}General steps for DDR3 configuration}{31}{subsection.4.1.1}%
|
||||||
\contentsline {section}{\numberline {4.2}Memory initialization techniques}{33}{section.4.2}%
|
\contentsline {section}{\numberline {4.2}Memory initialization techniques}{34}{section.4.2}%
|
||||||
\contentsline {subsection}{\numberline {4.2.1}Memory training algorithms}{33}{subsection.4.2.1}%
|
\contentsline {subsection}{\numberline {4.2.1}Memory training algorithms}{34}{subsection.4.2.1}%
|
||||||
\contentsline {subsection}{\numberline {4.2.2}BIOS and Kernel Developer Guide (BKDG) recommendations}{34}{subsection.4.2.2}%
|
\contentsline {subsection}{\numberline {4.2.2}BIOS and Kernel Developer Guide (BKDG) recommendations}{35}{subsection.4.2.2}%
|
||||||
\contentsline {subsubsection}{\numberline {4.2.2.1}DDR3 initialization procedure}{35}{subsubsection.4.2.2.1}%
|
\contentsline {subsubsection}{\numberline {4.2.2.1}DDR3 initialization procedure}{36}{subsubsection.4.2.2.1}%
|
||||||
\contentsline {subsubsection}{\numberline {4.2.2.2}ZQ calibration process}{35}{subsubsection.4.2.2.2}%
|
\contentsline {subsubsection}{\numberline {4.2.2.2}ZQ calibration process}{36}{subsubsection.4.2.2.2}%
|
||||||
\contentsline {subsubsection}{\numberline {4.2.2.3}Write leveling process}{36}{subsubsection.4.2.2.3}%
|
\contentsline {subsubsection}{\numberline {4.2.2.3}Write leveling process}{37}{subsubsection.4.2.2.3}%
|
||||||
\contentsline {section}{\numberline {4.3}Current implementation and potential improvements}{37}{section.4.3}%
|
\contentsline {section}{\numberline {4.3}Current implementation and potential improvements}{39}{section.4.3}%
|
||||||
\contentsline {subsection}{\numberline {4.3.1}Current implementation in coreboot on the KGPE-D16}{37}{subsection.4.3.1}%
|
\contentsline {subsection}{\numberline {4.3.1}Current implementation in coreboot on the KGPE-D16}{39}{subsection.4.3.1}%
|
||||||
\contentsline {subsubsection}{\numberline {4.3.1.1}Details on the DQS training function}{47}{subsubsection.4.3.1.1}%
|
\contentsline {subsubsection}{\numberline {4.3.1.1}Details on the DQS training function}{48}{subsubsection.4.3.1.1}%
|
||||||
\contentsline {subsubsection}{\numberline {4.3.1.2}Details on the DQS receiver training function}{48}{subsubsection.4.3.1.2}%
|
\contentsline {subsubsection}{\numberline {4.3.1.2}Details on the write leveling implementation}{51}{subsubsection.4.3.1.2}%
|
||||||
\contentsline {subsubsection}{\numberline {4.3.1.3}Details on the DQS position training function}{48}{subsubsection.4.3.1.3}%
|
\contentsline {subsubsection}{\numberline {4.3.1.3}Details on the write leveling implementation}{54}{subsubsection.4.3.1.3}%
|
||||||
\contentsline {subsection}{\numberline {4.3.2}Potential enhancements [WIP]}{48}{subsection.4.3.2}%
|
\contentsline {subsection}{\numberline {4.3.2}Write Leveling on AMD Fam15h G34 Processors with RDIMMs}{54}{subsection.4.3.2}%
|
||||||
\contentsline {chapter}{\numberline {5}Virtualization of the operating system through firmware abstraction}{52}{chapter.5}%
|
\contentsline {subsubsection}{\numberline {4.3.2.1}Details on the DQS position training function}{55}{subsubsection.4.3.2.1}%
|
||||||
\contentsline {section}{\numberline {5.1}ACPI and abstraction of hardware control}{52}{section.5.1}%
|
\contentsline {subsubsection}{\numberline {4.3.2.2}Details on the DQS receiver training function}{57}{subsubsection.4.3.2.2}%
|
||||||
\contentsline {section}{\numberline {5.2}SMM as a hidden execution layer}{53}{section.5.2}%
|
\contentsline {subsection}{\numberline {4.3.3}Potential enhancements}{60}{subsection.4.3.3}%
|
||||||
\contentsline {section}{\numberline {5.3}UEFI and persistence}{53}{section.5.3}%
|
\contentsline {subsubsection}{\numberline {4.3.3.1}DQS receiver training}{60}{subsubsection.4.3.3.1}%
|
||||||
\contentsline {subsection}{\numberline {5.3.1}Memory Management}{54}{subsection.5.3.1}%
|
\contentsline {subsubsection}{\numberline {4.3.3.2}Write leveling}{61}{subsubsection.4.3.3.2}%
|
||||||
\contentsline {subsection}{\numberline {5.3.2}File System Management}{54}{subsection.5.3.2}%
|
\contentsline {subsection}{\numberline {4.3.4}DQS position training}{63}{subsection.4.3.4}%
|
||||||
\contentsline {subsection}{\numberline {5.3.3}Device Drivers}{54}{subsection.5.3.3}%
|
\contentsline {subsection}{\numberline {4.3.5}On a wider scale...}{65}{subsection.4.3.5}%
|
||||||
\contentsline {subsection}{\numberline {5.3.4}Power Management}{54}{subsection.5.3.4}%
|
\contentsline {subsubsection}{\numberline {4.3.5.1}Saving training values in NVRAM}{65}{subsubsection.4.3.5.1}%
|
||||||
\contentsline {section}{\numberline {5.4}Intel and AMD: control beyond the OS}{54}{section.5.4}%
|
\contentsline {subsubsection}{\numberline {4.3.5.2}A seedless DQS position training algorithm}{66}{subsubsection.4.3.5.2}%
|
||||||
\contentsline {section}{\numberline {5.5}The OS as a virtualized environment}{55}{section.5.5}%
|
\contentsline {chapter}{\numberline {5}Virtualization of the operating system through firmware abstraction}{68}{chapter.5}%
|
||||||
\contentsline {chapter}{Conclusion}{56}{chapter*.4}%
|
\contentsline {section}{\numberline {5.1}ACPI and abstraction of hardware control}{68}{section.5.1}%
|
||||||
\contentsline {chapter}{Bibliography}{57}{chapter*.4}%
|
\contentsline {section}{\numberline {5.2}SMM as a hidden execution layer}{69}{section.5.2}%
|
||||||
\contentsline {chapter}{GNU Free Documentation License}{64}{chapter*.6}%
|
\contentsline {section}{\numberline {5.3}UEFI and persistence}{69}{section.5.3}%
|
||||||
|
\contentsline {subsection}{\numberline {5.3.1}Memory Management}{70}{subsection.5.3.1}%
|
||||||
|
\contentsline {subsection}{\numberline {5.3.2}File System Management}{70}{subsection.5.3.2}%
|
||||||
|
\contentsline {subsection}{\numberline {5.3.3}Device Drivers}{70}{subsection.5.3.3}%
|
||||||
|
\contentsline {subsection}{\numberline {5.3.4}Power Management}{70}{subsection.5.3.4}%
|
||||||
|
\contentsline {section}{\numberline {5.4}Intel and AMD: control beyond the OS}{70}{section.5.4}%
|
||||||
|
\contentsline {section}{\numberline {5.5}The OS as a virtualized environment}{71}{section.5.5}%
|
||||||
|
\contentsline {chapter}{Conclusion}{72}{chapter*.4}%
|
||||||
|
\contentsline {chapter}{Bibliography}{73}{chapter*.4}%
|
||||||
|
\contentsline {chapter}{GNU Free Documentation License}{80}{chapter*.6}%
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
% Free Documentation License".
|
% Free Documentation License".
|
||||||
|
|
||||||
\documentclass[french, 11pt]{report}
|
\documentclass[french, 11pt]{report}
|
||||||
|
\usepackage{silence}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage{url}
|
\usepackage{url}
|
||||||
\usepackage{float}
|
\usepackage{float}
|
||||||
|
@ -32,6 +33,8 @@
|
||||||
\usepackage[a4paper, portrait, margin=1.45cm]{geometry}
|
\usepackage[a4paper, portrait, margin=1.45cm]{geometry}
|
||||||
|
|
||||||
% Set parameters
|
% Set parameters
|
||||||
|
\WarningsOff
|
||||||
|
|
||||||
\setcounter{page}{0}
|
\setcounter{page}{0}
|
||||||
\hypersetup{linktoc=all}
|
\hypersetup{linktoc=all}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue