Update to Buildroot 2016.11

 * Regenerate defconfigs
  * The GCC 5 series is the buildroot default, so we need to explicitly
    select our GCC version if we want something else. We've gone with
    GCC 4.9 for Witherspoon. All other platforms are GCC 6.
  * Move to the latest glibc and binutils releases
  * We still use the 4.4 kernel headers for all platforms, including
    those on the 4.9 release candiates. This is because buildroot is yet
    to understand the 4.9 kernel.

One important part of this shift is to update the external format. From
the Buildroot documentation:

> Before Buildroot 2016.11, it was possible to use only one br2-external
> tree at once. With Buildroot 2016.11 came the possibility to use more
> than one simultaneously (for details, see Section 9.2, “Keeping
> customizations outside of Buildroot”).
>
> This however means that older br2-external trees are not usable as-is. A
> minor change has to be made: adding a name to your br2-external tree.
>
> This can be done very easily in just a few steps:
>
> First, create a new file named external.desc, at the root of your
> br2-external tree, with a single line defining the name of your
> br2-external tree:
>
> $ echo 'name: NAME_OF_YOUR_TREE' >external.desc
> Note. Be careful when choosing a name: It has to be unique and be made
> with only ASCII characters from the set [A-Za-z0-9_].
>
> Then, change every occurence of BR2_EXTERNAL in your br2-external tree
> with the new variable:
>
> $ find . -type f | xargs sed -i
> 's/BR2_EXTERNAL/BR2_EXTERNAL_NAME_OF_YOUR_TREE_PATH/g'
> Now, your br2-external tree can be used with Buildroot 2016.11 onward.
>
> Note: This change makes your br2-external tree incompatible with
> Buildroot before 2016.11.

Signed-off-by: Joel Stanley <joel@jms.id.au>
20 files changed
tree: 1e14550f5cdfa8cd148dd13c8fe2815c2f5894b5
  1. ci/
  2. dl/
  3. openpower/
  4. output/
  5. .gitignore
  6. .gitmodules
  7. LICENSE
  8. NOTICE
  9. op-build-env
  10. README.md
README.md

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.

Development

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

Mailing list: openpower-firmware@lists.ozlabs.org
Info/Subscribe: https://lists.ozlabs.org/listinfo/openpower-firmware
Archives: https://lists.ozlabs.org/pipermail/openpower-firmware/

Building an image

To build an image for a Palmetto system:

git clone --recursive git@github.com:open-power/op-build.git
cd op-build
. op-build-env
op-build palmetto_defconfig && op-build

There are also default configurations for other platforms in openpower/configs/ such as Habanero and Firestone.

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.

Dependencies for 64-bit Ubuntu/Debian systems

  1. Install Ubuntu (>= 14.04) or Debian (>= 7.5) 64-bit.

  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 ctags libz-dev libexpat-dev \
       python language-pack-en texinfo \
       build-essential g++ git bison flex unzip \
       libxml-simple-perl libxml-sax-perl libxml2-dev libxml2-utils xsltproc \
       wget bc
    

Dependencies for 64-bit Fedora systems

  1. Install Fedora 23 64-bit.

  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-bignum "perl(XML::Simple)" \
       "perl(YAML)" "perl(XML::SAX)" "perl(Fatal)" "perl(Thread::Queue)" \
       "perl(Env)" "perl(XML::LibXML)" "perl(Digest::SHA1)" libxml2-devel \
       which wget unzip tar cpio python bzip2 bc findutils ncurses-devel