Reduce Firmware Booting Time in Multi-Threaded Environment
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Multiprocessor Initialization of INTEL SOC in Coreboot
Multiprocessor Initialization OF INTEL SOC in Coreboot Pratik Prajapati ([email protected]) Subrata Banik ([email protected]) 1 Agenda • Intel Multiple Processor (MP) Initialization • Coreboot + Intel FSP Boot Flow • Problem with existing model • Solution space • Design • Future Scope 2 Intel Multiple Processor (MP) Initialization • The IA-32 architecture (beginning with the P6 family processors) defines a multiple-processor (MP) initialization protocol called the Multiprocessor Specification Version 1.4. • The MP initialization protocol has the following important features: • It supports controlled booting of multiple processors without requiring dedicated system hardware. • It allows hardware to initiate the booting of a system without the need for a dedicated signal or a predefined boot processor. • It allows all IA-32 processors to be booted in the same manner, including those supporting Intel Hyper-Threading Technology. • The MP initialization protocol also applies to MP systems using Intel 64 processors. • Entire CPU multiprocessor initialization can be divided into two parts – BSP (Boot Strap Processor) Initialization – AP (Application Processor) Initialization Reference: Intel SDM Multiple Processor Init - section 8.4 3 Coreboot + Intel FSP (Firmware support package) Boot Flow Coreboot/BIOS FSP * Coreboot uses its own temp ram init code. 4 Problem Statement with existing model • Background: Coreboot is capable enough to handle multiprocessor initialization on IA platforms. So ideally, CPU features programming can be part of Coreboot MP Init sequence. • But, there might be some cases where certain feature programming can't be done with current flow of MP init sequence. Because, Intel FSP-S has to program certain registers to meet silicon init flow due to SAI (Security Attributes of Initiator) and has to lock other registers before exiting silicon init API. -
Coreboot - the Free Firmware
coreboot - the free firmware vimacs <https://vimacs.lcpu.club> Linux Club of Peking University May 19th, 2018 . vimacs (LCPU) coreboot - the free firmware May 19th, 2018 1 / 77 License This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/. You can find the source code of this presentation at: https://git.wehack.space/coreboot-talk/ . vimacs (LCPU) coreboot - the free firmware May 19th, 2018 2 / 77 Index 1 What is coreboot? History Why use coreboot 2 How coreboot works 3 Building and using coreboot Building Flashing 4 Utilities and Debugging 5 Join the community . vimacs (LCPU) coreboot - the free firmware May 19th, 2018 3 / 77 Index 6 Porting coreboot with autoport ASRock B75 Pro3-M Sandy/Ivy Bridge HP Elitebooks Dell Latitude E6230 7 References . vimacs (LCPU) coreboot - the free firmware May 19th, 2018 4 / 77 1 What is coreboot? History Why use coreboot 2 How coreboot works 3 Building and using coreboot Building Flashing 4 Utilities and Debugging 5 Join the community . vimacs (LCPU) coreboot - the free firmware May 19th, 2018 5 / 77 What is coreboot? coreboot is an extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems. As an Open Source project it provides auditability and maximum control over technology. The word ’coreboot’ should always be written in lowercase, even at the start of a sentence. vimacs (LCPU) coreboot - the free firmware May 19th, 2018 6 / 77 History: from LinuxBIOS to coreboot coreboot has a very long history, stretching back more than 18 years to when it was known as LinuxBIOS. -
A MICROCHIP TECHNOLOGY INC. PUBLICATION Intruder Proof
A MICROCHIP TECHNOLOGY INC. PUBLICATION SEPT/OCT 2015 Intruder Proof Driving the 8-bit Bidirectional 6 19 MCU Evolution 27 IoT A MICROCHIP TECHNOLOGY INC. PUBLICATION SEPT/OCT 2015 COVER STORY NEW TOOLS Driving the 8-bit MCU Evolution 4 Satisfy Your Curiosity 19 New Development Board Provides Cost-Effective and Fully Integrated Entry into Designing with Microchip’s 8-bit PIC® Microcontrollers TECHNOLOGY 21 MOST® Technology in the News NEW PRODUCTS 6 Intruder Proof Latest Family of eXtreme Low Power PIC Microcontrollers DESIGN CORNER Offers Double the Flash Memory and New Security Options 23 Tired of Embedded Design Bottlenecks? 8 More to Love New Additions to Popular PIC32MX and PIC32MZ 25 Overcoming a Noisy World Families Offer Wide Variety of Features for Designers of Next-Generation Embedded Systems 27 Bidirectional IoT 10 A Connector Revolution 29 Blast Off! Cost-Effective UTC2000 Supports Radically Updated USB-C™ Connector 32 Defying the Odds 11 Seamless Migration New Family of Highly Configurable, Low-Power Embedded DEV TOOL DEALS Controllers Allows Mobile Computing Designers to Easily A Harvest of Savings Reuse IP Across Multiple x86 Platforms 22 13 Advanced Industrial Connectivity Enhanced Industrial Ethernet Switches Feature IEEE 1588-2008 Precision Time Protocol and Low-Power Options Is it Hot in Here? 15 contents Save Design Effort, Space and Cost with the New MCP9600 Integrated Thermocouple to Degrees Celsius Converter 17 Simple Solution Industry’s First MOST150 Coaxial Transceiver Enables Powerful, Robust and Cost-Efficient Automotive Infotainment Networks The Microchip name and logo, the Microchip logo, dsPIC, FlashFlex, KEELOQ, KEELOQ logo, MOST, MPLAB, mTouch, PIC, PICmicro, PICSTART, PIC32 logo, rfPIC, SST, SST Logo, SuperFlash and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. -
Quadcore with Coreboot / Libreboot on the T500 (Hopefully the T400 As Well)
QuadCore with Coreboot / Libreboot on the T500 (hopefully the T400 as well) (Translator’s note: Unfortunately, I couldn’t get pdflatex to compile with images, so here’s the link, I’ll put lines in at least so that you can see where each image goes) I tested the quadcore-mod from here first on a T500 mainboard, but back then, the BIOS did me a great disservice, see here and read the paragraph “Why this can’t be done for the T500 and W500” at the end of the first post. Meanwhile, we got Libreboot for the T500, which is basically Coreboot without BLOBs, i.e. CPU microcode. The code differs from coreboot in certain other aspects, however I don’t know exactly. With the ROMs offered for the T500, Quads don’t work either. Finally, I got to actually using a Pandaboard to debug Libreboot’s boot process with a Quad-core installed. The boot process hangs when the third CPU is to be initialized. Looking at the code, I found out that the kconfig data is built to the original specs. In the case of the T500 (which takes the data from the folder for the T400), the maximum count for the CPU is set to two. I changed the count to 4, generated the ROM again, flashed it –> You got quadcore. Because the current Libreboot version doesn’t support screens larger than 1280x800 with the T500, I had to extract the original VGA-BIOS for the Intel graphics from the original Lenovo BIOS and integrate it instead of the “native VGA init” into the ROM. -
How to Create a Trust Anchor with Coreboot
How to create a trust anchor with coreboot. Trusted Computing vs Authenticated Code Modules Philipp Deppenwiese About myself Member of a hackerspace in germany. 10 years of experience in it-security. Did a lot work on trusted computing and system security at my last job at Rohde and Schwarz Cybersecurity. I am a Gentoo user. Now I am a web developer and system administrator. Basics Important acronyms TPM - Trusted Platform Module TCB - Trusted Computing Base PCR - Platform Conguration Register ACM - Authenticated Code Modules PKI - Public Key Infrastructure TEE - Trusted Execution Environment TPM Trusted Platform Modules are smartcards with extra feature set. Version 1.2 and 2.0 are out. www.trustedcomputinggroup.org does the specication and compliance. The authorization is done via ownership model. User can own the TPM. A TPM is always passive and not active ! TPM 1.2 Created for Digital Rights Management but never used for it. Huge portests in the internet done by the FSF. TCG stepped back and modied the specication in order to provide an ownership model, DAA and revokable Endorsement Key in order to stop identication and provide full control. Algorithm sizes are limited RSA-2048 and SHA-1. There is one open source software stack. TPM 1.2 TPM 2.0 Mainly build for Microsoft! Compliance testsuite and everything else was designed for Windows usage only. Specication was removed shortly after it appeared. You can't nd it on the internet. Supports modern cryptographic algorithms. TPM 2.0 Two software stacks. IBM and Intel. TPM architecture/hierachy got much more complex. Protected against bus attacks by having DH key exchange to establish a secure connection. -
System Management Bus(Smbus)Specification
System Management Bus (SMBus) Specification Version 3.1 19 Mar 2018 www.powerSIG.org © 2018 System Management Interface Forum, Inc. – All Rights Reserved Filename: SMBus 3_1_20180319.docx Last Saved: 19 March 2018 09:31 System Management Bus (SMBus) Specification Version 3.1 This specification is provided “as is” with no warranties whatsoever, whether express, implied or statutory, including but not limited to any warranty of merchantability, non-infringement or fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification or sample. In no event will any specification co-owner be liable to any other party for any loss of profits, loss of use, incidental, consequential, indirect or special damages arising out of this specification, whether or not such party had advance notice of the possibility of such damages. Further, no warranty or representation is made or implied relative to freedom from infringement of any third party patents when practicing the specification. Other product and corporate names may be trademarks of other companies and are used only for explanation and to the owner’s benefit, without intent to infringe. Revision No. Date Notes Editor 1.0 15 Feb 1995 General Release Robert Dunstan 1.1 11 Dec 1998 Version 1.1 Release Robert Dunstan 2.0 3 Aug 2000 Version 2.0 Release Robert Dunstan 3.0 20 Dec 2014 Version 3.0 Release Robert V. White Embedded Power Labs 3.1 19 Mar 2018 Version 3.1 Release Robert V. White Embedded Power Labs Questions and comments regarding this For additional information on Smart Battery System specification may be forwarded to: Specifications, visit the SBS Implementer’s Forum [email protected] (SBS-IF) at: www.sbs-forum.org © 2018 System Management Interface Forum, Inc. -
Dell Trusted Device Below the OS Whitepaper
Client Solutions Dell Trusted Device: BIOS Security An introduction to the Dell Trusted Device BIOS and security features. Author: Rick Martinez © 2020 Dell Inc. or its subsidiaries. All Rights Reserved. Dell, EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be trademarks of their respective owners. Initial Release – September 2020 Table of Contents Executive summary 3 The Key Elements of Dell BIOS Security 4 What is BIOS? What is UEFI? . 4 The Importance of “Below the OS” Security . 5 NIST Cybersecurity Framework . 6 Identify 6 Identity and Asset Management Tags . 6 SDL 7 Secure Design Processes and SDL . 8 Industry Affiliations . .8 “Below the OS” Threat Modeling . 8 Protect 9 The PC Boot Process . 9 UEFI Secure Boot Expert Mode . 11 Signed Firmware Update. .11 NIST SP800-147 Support . 12 Mitigating SMM Threats with Intel BIOS Guard . 12 What is SMM? . 12 Mitigation: Intel BIOS Guard . 13 BIOS Patch Management . 13 BIOS Downgrade Protection . 14 Embedded Controller: Signed Firmware . 14 Protecting BIOS Configuration. 14 Protecting BIOS at Runtime . 17 Detect 19 Intel Boot Guard . 19 SafeBIOS Verification . 20 BIOS Indicators of Attack . 21 Chassis Intrusion . 22 TCG Measured Boot . 22 Recover 24 Embedded Controller Recovery . 24 BIOS Recovery . 24 Dell Data Wipe . 26 Supply Chain Assurance 27 Protected Signing Infrastructure. 27 The Future of Security 28 Appendix 29 Referenced Links. 29 Learn More 30 Acknowledgements . 30 About the author. 30 Executive summary Computer security is a multi-billion dollar business with thousands of companies competing for organizations’ attention and enterprise dollars. Dell Technologies has created an innovative and effective portfolio of technologies and solutions in this industry to help organizations secure their enterprises. -
Coreboot on RISCV Ron Minnich, Google Thanks to Stefan Reinauer, Duncan Laurie, Patrick Georgi,
coreboot on RISCV Ron Minnich, Google Thanks to Stefan Reinauer, Duncan Laurie, Patrick Georgi, ... Overview ● What firmware is ● What coreboot is ● Why we want it on RISCV ● History of the port ● Structure of the port ● Status ● Lessons learned Firmware, 1974-present, always-on ● Bottom half of the operating system ● Provided an abstract interface (Basic Input Output System, or Platform-independent code, BIOS) to top half loaded from (e.g.) floppy, ● Supported DOS, CP/M, etc. tape, etc. ● Sucked Platform code, on EEPROM ○ Slow or similar ○ No easy bugfix path ○ Not SMP capable Firmware, 1990-2005, “Fire and Forget” ● Just set up bootloader and get out of the way ● Set all the stuff kernels can’t do Linux ○ Magic configuration, etc. ○ Even now, Linux can not do most of what this code does Platform code, get DRAM going, set naughty bits, load ● LinuxBIOS is one example kernel, please go away ● 2000: boot complex server node to Linux in 3 seconds ● 2015: EFI can do the same in 300 seconds Firmware, 2005-present, “The Empire Strikes Back” ● Kernel is Ring 0 ● Hypervisor is Ring -1 ● Firmware is Ring -2 ● Firmware gets hardware going Platform-independent code ● But never goes away ● Sucks Platform code, on EEPROM ○ Slow or similar ○ No easy bugfix path ○ Not SMP capable on x86 ● This model is even being pushed for ARM V8 ○ :-( Why don’t we (ok, I) like persistent firmware? ● It’s just another attack vector ○ Indistinguishable from persistent embedded threat ○ Is the code an exploit or … ○ Not necessary in an open source world ○ Main function -
Dspic® Digital Signal Controllers
dsPIC® Digital Signal Controllers dsPIC® Digital Signal Controllers www.microchip.com/DSC Digital Signal Controller Solutions Building on the legacy of Microchip’s world-leading 8-bit PIC® microcontrollers, 16-bit dsPIC® Digital Signal Controllers (DSCs) deliver a large product portfolio to make your demanding applications more competitive by providing lower system cost and improved effi ciency. A Digital Signal Controller (DSC) is a single-chip embedded controller that seamlessly integrates the control attributes of a microcontroller (MCU) with the computation and throughput capabilities of a Digital Signal Processor (DSP). Reduce Development Risk Save System Cost Natural step up for 8-bit MCU users needing more Simplify your design through integration performance/memory and effi ciency ■ Industry’s largest DSC portfolio for optimal product fi t ■ Best in class ‘C’ effi ciency enables reduced Flash size ■ Extensive software and application design support ■ Low pin count packages provide lower product cost ■ Same Integrated Development Environment for ■ Replace complex analog fi lters with digital fi lters 8/16/32-bit MCUs ■ Highly Integrated DSCs reduce external components ■ Extensive web seminars and training courses Discover New Design Options Complete Project on Schedule Transform ideas into reality Leverage existing software, unprecedented ■ Add powerful features with DSC capabilities compatibility and powerful graphical tools ■ Employ advanced algorithms to improve effi ciency ■ Free software, code examples and peripheral libraries ■ Explore -
Intel® Chipsets Low Pin Count Interface Specification
R Intel® Low Pin Count (LPC) Interface Specification August 2002 Revision 1.1 Document Number: 251289-001 Introduction R Information in this document is provided in connection with Intel® products.No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document.Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE.Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to use of informa tion in this specification.No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted herein, except that a li cense is hereby granted to copy and reproduce this specification for internal use only. -
Libreboot – Free Boot Firmware Libreboot Is a Free Boot Firmware for Use on Computers Certified "Respects Your Freedom"
LibreBoot – Free Boot Firmware LibreBoot is a free boot firmware for use on computers certified "Respects Your Freedom". Most x86 computers are designed to run Windows and come with a non-free BIOS or UEFI firmware that often includes some Malware. Windows itself is malware, and Windows licences are often stored in the BIOS on OEM PCs. For the sake of our freedom we replace Windows with a free distribution of GNU/Linux such as Trisquel (an Ubuntu derivative). But we also have to replace the non-free software that initializes the Hardware with free software. Most hardware vendors do not document how to install a different BIOS, and make it hard to install a different one. But there is coreboot, a free BIOS that can run on some computers. Coreboot contains binary blobs, but some systems can stable run without any blobs. LibreBoot also contains documentation how to install a released version of the coreboot firmware on supported hardware such as some older Thinkpads, and scripts to build the firmware from source, for all supported models. Because newer systems are unable to boot without those blobs, there is no support for newer x86 based computers. For Intel based hardware one challenge is the Management Engine (ME), which is designed for remote out of band management. The firmware for the ME is proprietary and it is impossible to run a free replacement, because it is signed using a secret key. However it is possible to remove the ME firmware on some systems so that it is possible to use them in freedom. -
Presents : Coreboot for Dummies
Coreboot for Dummies By Youness Alaoui This adventure has been sponsored by : What are we gonna talk about? •Who am I ? •Getting started with coreboot! •Getting an existing port to build and work •Testing and finishing the Librem 13 v1 port •Starting a new port from scratch •Debug output, how hard can it be? •Summary of doing a port •It's question time! Who am I ? ● Youness Alaoui, a.k.a KaKaRoTo ● aMSN developper ● libnice, Farstream, GStreamer, Meego ● PS3 reverse-engineer ● Freelance consultant ● Most importantly: a coreboot newbie Getting started with coreboot! ● What is coreboot? How does it work ? ● Looking at the entry point… Bad ideas ● The Three Stooges ● Lack of documentation ● Excessive documentation ● Getting started tutorial How to brick a laptop quickly and painlessly! ● Just kidding, it will be painful to the laptop. ● At first glance, most wiki information is about desktop motherboards ● Backup the rom before doing anything else! ● Don’t solder to the motherboard! Dumping the flash on v2 hardware ● Used a Logic Analyzer ● Dump trace data into CSV ● Script to analyze SPI commands and reconstitute the image from reads ● Realize the image is corrupted ● Adjust for <2ns spikes to ignore cross talk ● Give up Dumping the flash on v2 hardware Dumping the flash on v1 hardware ● Don't trust AFULNX, AFUDOS, AFUWIN ● Flashrom to the rescue! ● Laptops and EC ● Use a SOIC clip, instead of a chip socket ● Understanding the Intel Flash Descriptor ● Powering the flash chip and hardware magical nonsense First coreboot build ● The first build tutorial is an excellent start ● Missing microcode ● Missing blobs and descriptors Binary blobs, gotta catch them all! ● How to dump the VGA Bios properly ● Where to get the MRC.bin file ? ● What about the refcode.bin ? ● IFD Descriptor and ME binaries The importance of debugging ● Getting USB debug to work was easy, thank you! ● With no debug output, you can’t properly do a port.