commit | 2658f6d29c26603edfd48a888c476a5bae5ee402 | [log] [tgz] |
---|---|---|
author | Samuel Mendoza-Jonas <sam@mendozajonas.com> | Thu Oct 19 11:14:22 2017 +1100 |
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | Thu Oct 19 11:22:22 2017 +1100 |
tree | c2d0acea0288350aca5c9fc074bc22afe31f5d4e | |
parent | 010f5c0459aa4c9c205da3e5ba3b569d303eeb87 [diff] |
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>
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.
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/
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.
Install Ubuntu (>= 14.04) or Debian (>= 7.5) 64-bit.
Enable Universe (Ubuntu only):
sudo apt-get install software-properties-common sudo add-apt-repository universe
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
Install Fedora 25 64-bit (older Fedora should also work).
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