configs/linux: Set CONFIG_BLK_DEV_INTEGRITY

P9 platforms support the use of the Samsung "Bolt" NVMe adapter. These
adapters include data integrity support. CONFIG_BLK_DEV_INTEGRITY
enables this but more importantly it avoids an issue when the adapter is
configured with T10 data integrity and accessed by a kernel without
CONFIG_BLK_DEV_INTEGRITY set.
This manifests as the adapter failing to init correctly and the system
hanging on any attempt to access the device, including failing to reboot
or kexec:

[   36.320430] nvme nvme0: I/O 498 QID 2 timeout, aborting
[   36.320443] nvme nvme0: I/O 499 QID 2 timeout, aborting
[   36.320452] nvme nvme0: I/O 500 QID 2 timeout, aborting
[   36.320470] nvme nvme0: controller is down; will reset: CSTS=0x3, PCI_STATUS=0x1010
[   36.482668] print_req_error: I/O error, dev nvme0n1, sector 0
[   36.482677] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[   36.482683] print_req_error: I/O error, dev nvme0n1, sector 16
[   36.482687] Buffer I/O error on dev nvme0n1, logical block 1, async page read
[   36.482692] print_req_error: I/O error, dev nvme0n1, sector 32
[   36.482695] Buffer I/O error on dev nvme0n1, logical block 2, async page read
[   36.482700] print_req_error: I/O error, dev nvme0n1, sector 64
[   36.482703] Buffer I/O error on dev nvme0n1, logical block 4, async page read
[   36.482707] print_req_error: I/O error, dev nvme0n1, sector 80
[   36.482710] Buffer I/O error on dev nvme0n1, logical block 5, async page read
[   36.482715] print_req_error: I/O error, dev nvme0n1, sector 96
[   36.482718] Buffer I/O error on dev nvme0n1, logical block 6, async page read
[   36.482722] print_req_error: I/O error, dev nvme0n1, sector 112
[   36.482725] Buffer I/O error on dev nvme0n1, logical block 7, async page read
[   36.482753] nvme nvme0: Abort status: 0x7
[   36.482758] nvme nvme0: Abort status: 0x7
[   36.482763] nvme nvme0: Abort status: 0x7
[   36.482771] print_req_error: I/O error, dev nvme0n1, sector 48
[   36.482775] Buffer I/O error on dev nvme0n1, logical block 3, async page read
[   36.540460] nvme 0000:01:00.0: Using 64-bit DMA iommu bypass
[   99.040422] nvme nvme0: I/O 1 QID 0 timeout, disable controller
[   99.210493] nvme nvme0: Identify Controller failed (-4)
[   99.210498] nvme nvme0: Removing after probe failure status: -5

In the absence of a fix for this issue, set CONFIG_BLK_DEV_INTEGRITY as
a workaround, and for the sake of completeness add it to
skiroot_defconfig and pseries_skiroot_defconfig as well.

This also regenerates and simplifies the defconfigs.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
3 files changed
tree: c2d0acea0288350aca5c9fc074bc22afe31f5d4e
  1. ci/
  2. dl/
  3. openpower/
  4. output/
  5. .gitignore
  6. .gitmodules
  7. CONTRIBUTING.md
  8. LICENSE
  9. NOTICE
  10. op-build-env
  11. 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 \
       libssl-dev libxml-simple-perl libxml-sax-perl libxml2-dev libxml2-utils xsltproc \
       wget bc
    

Dependencies for 64-bit Fedora systems

  1. Install Fedora 25 64-bit (older Fedora should also work).

  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