About the Authors |
|
vii | |
About the Technical Reviewer |
|
ix | |
About the Foreword Author |
|
xi | |
Foreword |
|
xiii | |
|
Preface |
|
xv | |
Acknowledgments |
|
xix | |
Introduction |
|
xxi | |
|
Chapter 1 Spotlight on Future Firmware |
|
|
1 | (128) |
|
Migrating to Open Source Firmware |
|
|
3 | (2) |
|
Ring - 1: System Firmware |
|
|
5 | (1) |
|
Ring - 2: System Management Mode |
|
|
5 | (1) |
|
Ring - 3: Manageability Firmware |
|
|
6 | (4) |
|
Open Source System Firmware Development |
|
|
10 | (2) |
|
Hybrid System Firmware Model |
|
|
12 | (35) |
|
Open Source System Firmware Model |
|
|
47 | (22) |
|
Open Source Device Firmware Development |
|
|
69 | (2) |
|
Legacy Device Firmware/Option ROM |
|
|
71 | (6) |
|
|
77 | (5) |
|
Why Is Open Source Device Firmware Needed? |
|
|
82 | (2) |
|
Open Source Manageability Firmware Development |
|
|
84 | (4) |
|
Baseboard Management Controller |
|
|
88 | (14) |
|
Zephyr OS: An Open Source Embedded Controller Firmware Development |
|
|
102 | (24) |
|
|
126 | (3) |
|
|
129 | (48) |
|
|
132 | (2) |
|
EDKII Build Tools and Process |
|
|
134 | (15) |
|
Coreboot Build Tools and Process |
|
|
149 | (13) |
|
|
162 | (1) |
|
Human Interface Infrastructure |
|
|
163 | (3) |
|
|
166 | (2) |
|
Firmware Configuration Interface |
|
|
168 | (2) |
|
Binary Configuration Tool (BCT)/Config Editor |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
172 | (2) |
|
|
174 | (3) |
|
Chapter 3 Infrastructure for Building Your Own Firmware |
|
|
177 | (50) |
|
Overview of Source Control Management |
|
|
178 | (1) |
|
|
179 | (21) |
|
Version Control Repository Hosting Service |
|
|
200 | (3) |
|
|
203 | (5) |
|
Best Known Mechanism of Source Code Management |
|
|
208 | (2) |
|
|
210 | (2) |
|
|
212 | (2) |
|
|
214 | (1) |
|
|
215 | (1) |
|
|
216 | (1) |
|
|
217 | (1) |
|
|
218 | (1) |
|
|
219 | (1) |
|
|
220 | (1) |
|
Write a Good Commit Message |
|
|
221 | (4) |
|
|
225 | (2) |
|
Chapter 4 System Firmware Debugging |
|
|
227 | (46) |
|
Hardware-Assisted Debugging |
|
|
233 | (1) |
|
|
234 | (4) |
|
|
238 | (18) |
|
|
256 | (5) |
|
Software-Assisted Debugging |
|
|
261 | (1) |
|
|
261 | (1) |
|
|
262 | (3) |
|
Serial Message or Serial Buffer |
|
|
265 | (1) |
|
|
266 | (1) |
|
|
267 | (1) |
|
|
268 | (2) |
|
|
270 | (2) |
|
|
272 | (1) |
|
Chapter 5 Security at Its Core |
|
|
273 | (32) |
|
Revisiting the Definition of Firmware with a Security Mindset |
|
|
276 | (1) |
|
Why Is Firmware Security Required? |
|
|
277 | (9) |
|
Platform Configuration for Firmware |
|
|
286 | (1) |
|
Firmware with Security Mindset in a Computing System |
|
|
287 | (16) |
|
|
303 | (2) |
|
Chapter 6 Looking at the Future of system Firmware |
|
|
305 | (48) |
|
|
309 | (4) |
|
|
313 | (12) |
|
|
325 | (1) |
|
Designing a Feature Kernel |
|
|
326 | (2) |
|
|
328 | (1) |
|
|
329 | (1) |
|
Design Multithreaded System Firmware |
|
|
330 | (4) |
|
|
334 | (7) |
|
|
341 | (1) |
|
Innovation in Hardware Design |
|
|
342 | (2) |
|
|
344 | (7) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Appendix A The Evolution of System Programming Languages |
|
|
353 | (14) |
|
The History of System Programming Languages |
|
|
354 | (2) |
|
System Programming Languages Today |
|
|
356 | (2) |
|
The Future of System Programming Languages |
|
|
358 | (9) |
|
Appendix B initramfs: A Call for Type-Safe Languages |
|
|
367 | (6) |
Glossary |
|
373 | (6) |
Reference |
|
379 | (1) |
Websites |
|
379 | (4) |
Books, Conferences, Journals, and Papers |
|
383 | (2) |
Index |
|
385 | |