open-power / op-build

Buildroot overlay for Open Power
GNU General Public License v2.0
103 stars 183 forks source link
firmware makefile openpower

OpenPOWER Firmware Build Environment

The OpenPOWER firmware build process uses Buildroot to create a toolchain and build the various components of the PNOR firmware, including Hostboot, Skiboot, OCC, Petitboot etc.

Documentation

https://open-power.github.io/op-build/

See the doc/ directory for documentation source. Contributions are VERY welcome!

Development

Issues, Milestones, pull requests and code hosting is on GitHub: https://github.com/open-power/op-build

See CONTRIBUTING.md for howto contribute code.

Building an image

To build an image for a Blackbird system:

git clone --recursive https://github.com/open-power/op-build.git
cd op-build
./op-build blackbird_defconfig && ./op-build

There are also default configurations for other platforms in openpower/configs/. Current POWER9 platforms include Witherspoon, Boston (p9dsu), Romulus, and Zaius.

Buildroot/op-build supports both native and cross-compilation - it will automatically download and build an appropriate toolchain as part of the build process, so you don't need to worry about setting up a cross-compiler. Cross-compiling from a x86-64 host is officially supported.

The machine your building on will need Python 2.7, GCC 8.4 (or later), and a handful of other packages (see below).

Dependencies for 64-bit Ubuntu/Debian systems

  1. Install Ubuntu 22.04 or Debian 12 (x86_64 or ppc64le).
  2. Enable Universe (Ubuntu only):

    sudo apt-get install software-properties-common
    sudo add-apt-repository universe
  3. Install the packages necessary for the build:

    sudo apt-get install cscope universal-ctags libz-dev libexpat-dev \
      python2 python-is-python3 language-pack-en texinfo gawk cpio xxd \
      build-essential g++ git bison flex unzip \
      libssl-dev libxml-simple-perl libxml-sax-perl libxml-parser-perl libxml2-dev libxml2-utils xsltproc \
      wget bc rsync

Dependencies for 64-bit Fedora systems

  1. Install Fedora 33 (x86_64 or ppc64le).
  2. Install the packages necessary for the build:

    sudo dnf install gcc-c++ flex bison git ctags cscope expat-devel patch \
      zlib-devel zlib-static texinfo "perl(bigint)" "perl(XML::Simple)" \
      "perl(YAML)" "perl(XML::SAX)" "perl(Fatal)" "perl(Thread::Queue)" \
      "perl(Env)" "perl(XML::LibXML)" "perl(Digest::SHA1)" "perl(ExtUtils::MakeMaker)" \
      "perl(FindBin)" "perl(English)" "perl(Time::localtime)" "perl(open)" \
      libxml2-devel which wget unzip tar cpio python bzip2 bc findutils ncurses-devel \
      openssl-devel make libxslt vim-common lzo-devel python2 rsync hostname