Coder Social home page Coder Social logo

jcajka / hostboot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-power/hostboot

0.0 2.0 0.0 72.06 MB

System initialization firmware for Power systems

License: Apache License 2.0

Makefile 0.82% Shell 0.16% Tcl 0.09% C 29.90% Perl 2.05% Python 0.05% C++ 66.78% Assembly 0.07% Objective-C 0.03% XSLT 0.01% Lex 0.01% Yacc 0.03%

hostboot's Introduction

Hostboot

Hostboot firmware initializes all processor, bus, and memory within IBM POWER based systems. Furthermore, it is responsible for loading the hostboot image using hostboot bootloader, prepare hardware to load and run an appropriate payload (e.g phyp or skiboot), and provide runtime services while the payload is running. Various hostboot features are easily configurable via compile time CONFIG flags.

How to compile hostboot?

  • Standalone compile:
    • cd hostboot
    • ./hb workon
    • make -j32
      • NOTE: You can run make clobber when switching between branches or releases for a fresh start
    • hb prime
  • In OpenPOWER context:
    • op-build <system_name>_defconfig && op-build hostboot-rebuild machine-xml-rebuild openpower-pnor-rebuild
      • Example: op-build witherspoon_defconfig && op-build hostboot-rebuild machine-xml-rebuild openpower-pnor-rebuild
    • NOTE: Above command is assuming you have already done a full op-build compile already. If not, then run the following op-build <system_name>_defconfig && op-build

Various Components

Hostboot Bootloader image is part of the SEEPROM SBE (Self Boot Engine) image. In istep 5.1, SBE loads the bootloader in cache. In istep 5.2, SBE starts instructions on the processor from where the HBBL is loaded. HBBL finds the hostboot images in pnor, loads them into memory, and starts hostboot.

Hostboot uses a custom kernel that enables execution of user-space hostboot IPL firmware and services. The kernel provides the general execution environment, message passing, task control, memory management, interrupt support, and any other functions to support the initialization activities of the user space. It is a micro-kernel that pushes as much function as possible to the user space, which has more safety protections.

User Space Applications

There are various user space applications, including, device drivers, services necessary for base enablement, and other interactions with other components.

Device Drivers
  • Base Device Driver FW (devicefw)
  • FSI
  • GPIO
  • I2C
  • SCAN/SCOM/IBSCOM/FSISCOM/XSCOM
  • IPMI
  • LPC
  • MBOX
  • PNOR
Base Services
  • Error Logs
  • Targeting
  • FAPI2
  • HWAS
  • Base IPL Service (initservice/isteps)
  • Interrupt Service
  • Trace
  • VFS
  • VPD
  • Console
  • Secureboot
Other FW Components
  • SBE
  • HDAT
  • HTMGT
  • PRD/DIAGNOSTICS
  • HBRT

Build

This contains all the infrastructure to compile, link, and generate hostboot binaries (including a full pnor for standalone compile).

Import

This contains code which does all the hardware accesses required to initialize the hardware. This lives in the import directory because we directly consume it from the hardware team and call it hardware procedures.

hostboot's People

Contributors

dcrowell77 avatar zane131 avatar crgeddes avatar ibmthi avatar jjmcgill avatar cnpalmer avatar brs332 avatar aamarin avatar sglancy6 avatar sannerd avatar rjknight avatar premsjha avatar wghoffa avatar benatibm avatar cvswen avatar stermole avatar mderkse1 avatar mgloff avatar stillgs avatar e-liner avatar jacobharvey avatar mabaiocchi avatar steffenchris avatar sgupta2m avatar bweisenb avatar dgilbert999 avatar geissonator avatar anusrang avatar ploetzma avatar davidduyue avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.