{"id":4166,"date":"2016-09-12T10:31:06","date_gmt":"2016-09-12T00:31:06","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=4166"},"modified":"2016-09-12T10:31:06","modified_gmt":"2016-09-12T00:31:06","slug":"compiling-your-own-firmware-for-the-s822lc-for-hpc","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2016\/09\/12\/compiling-your-own-firmware-for-the-s822lc-for-hpc\/","title":{"rendered":"Compiling your own firmware for the S822LC for HPC"},"content":{"rendered":"<p>IBM (my employer) recently announced\u00c2\u00a0 the new S822LC for HPC POWER8+NVLINK NVIDIA P100 GPUs server (<a href=\"http:\/\/www.prnewswire.com\/news-releases\/ibm-linux-servers-designed-to-accelerate-artificial-intelligence-deep-learning-and-advanced-analytics-300324348.html\">press release<\/a>, <a href=\"https:\/\/www.ibm.com\/blogs\/systems\/ibm-nvidia-present-nvlink-server-youve-waiting\/?S_PKG=ov50321&amp;S_TACT=000000QF&amp;S_OFF_CD=000000QF&amp;cm_mmc=OSocial_Blog%20-_-IBM+Systems+-+Open%20Power%20HPC-_-WW_WW-_-SumitGuptaBlog_NVLink_ov50321&amp;cm_mmca1=000000QF&amp;cm_mmca2=10000537\">IBM Systems Blog<\/a>, <a href=\"http:\/\/www.theregister.co.uk\/2016\/09\/08\/ibm_releases_x86_killer_s822lc_linux\/\">The Register<\/a>). The &#8220;For HPC&#8221; suffix on the model number is significant, as the S822LC is a different machine. What makes the &#8220;for HPC&#8221; variant different is that the POWER8 CPU has (in addition to PCIe), logic for NVLink to connect the CPU to NVIDIA GPUs.<\/p>\n<p>There&#8217;s also the NVIDIA Tesla P100 GPUs which are NVIDIA&#8217;s latest in an SXM2 form factor, but instead of delving into GPUs, I&#8217;m going to tell you how to compile the firmware for this machine.<\/p>\n<p>You see, this is an <a href=\"http:\/\/openpowerfoundation.org\/\">OpenPOWER<\/a> machine. It&#8217;s an OpenPOWER machine where the vendor (in this case IBM) has worked to get all the needed code upstream, so you can see exactly what goes into a firmware build.<\/p>\n<p>To build the latest host firmware (you can cross compile on x86 as we use buildroot to build a cross compiler):<\/p>\n<pre>git clone --recursive https:\/\/github.com\/open-power\/op-build.git\r\ncd op-build\r\n. op-build-env\r\nop-build garrison_defconfig\r\nop-build<\/pre>\n<p>That&#8217;s it! Give it a while and you&#8217;ll end up with <code>output\/images\/garrison.pnor<\/code> &#8211; which is a firmware image to flash onto PNOR. The machine name is garrison as that&#8217;s the code name for the &#8220;S822LC for HPC&#8221; (you may see Minsky in the press, but that&#8217;s a rather new code name, Garrison has been around for a lot longer as a name).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>IBM (my employer) recently announced\u00c2\u00a0 the new S822LC for HPC POWER8+NVLINK NVIDIA P100 GPUs server (press release, IBM Systems Blog, The Register). The &#8220;For HPC&#8221; suffix on the model number is significant, as the S822LC is a different machine. What &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2016\/09\/12\/compiling-your-own-firmware-for-the-s822lc-for-hpc\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[570,588],"tags":[686,691,689,688,690,692,636,587,687],"class_list":["post-4166","post","type-post","status-publish","format-standard","hentry","category-ibm-work-et-al","category-opal","tag-garrison","tag-gpu","tag-hpc","tag-minsky","tag-nvidia","tag-nvlink","tag-opal","tag-openpower","tag-s822lc"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-15c","jetpack-related-posts":[{"id":4170,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/09\/22\/compiling-your-own-firmware-for-barreleye-opencompute-openpower-system\/","url_meta":{"origin":4166,"position":0},"title":"Compiling your own firmware for Barreleye (OpenCompute OpenPOWER system)","author":"Stewart Smith","date":"2016-09-22","format":false,"excerpt":"Aaron Sullivan announced on the Rackspace Blog that you can now get your own Barreleye system! What's great is that the code for the Barreleye platform is upstream in the op-build project, which means you can build your own firmware for them (just like garrison, the \"IBM S822LC for HPC\"\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4207,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/10\/31\/fast-reset-trusted-boot-and-the-security-of-sbinreboot\/","url_meta":{"origin":4166,"position":1},"title":"Fast Reset, Trusted Boot and the security of \/sbin\/reboot","author":"Stewart Smith","date":"2016-10-31","format":false,"excerpt":"In OpenPOWER land, we've been doing some work on Secure and Trusted Boot while at the same time doing some work on what we call fast-reset (or fast-reboot, depending on exactly what mood someone was in at any particular time.... we should start being a bit more consistent). The basic\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3775,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/07\/17\/openpower-firmware-up-on-github\/","url_meta":{"origin":4166,"position":2},"title":"OpenPower firmware up on github!","author":"Stewart Smith","date":"2014-07-17","format":false,"excerpt":"With the whole OpenPower thing, a lot of low level firmware is being open sourced, which is really exciting for the platform - the less proprietary code sitting in memory the better in my books. If you go to https:\/\/github.com\/open-power you'll see code for a bunch of the low level\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3925,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/12\/23\/more-openpower-firmware-code-released-occ\/","url_meta":{"origin":4166,"position":3},"title":"More OpenPower Firmware code released: OCC","author":"Stewart Smith","date":"2014-12-23","format":false,"excerpt":"Inside the IBM POWER8 chip there's another processor! That's right folks, you get another CPU for no extra cost (It's a lot funnier if you say these previous two sentences as if you were presenting an informercial for a special TV offer). It is, however, not what you'd consider a\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3912,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/12\/03\/running-skiboot-opal-on-the-power8-simulator\/","url_meta":{"origin":4166,"position":4},"title":"Running skiboot (OPAL) on the POWER8 Simulator","author":"Stewart Smith","date":"2014-12-03","format":false,"excerpt":"skiboot is open source boot and runtime firmware for OpenPOWER. On real POWER8 hardware, you will also need HostBoot to do this (basically, to make the chip work) but in a functional simulator (such as this one released by IBM) you don't need a bunch of hardware procedures to make\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3940,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/02\/03\/building-openpower-firmware-for-use-in-power8-simulator\/","url_meta":{"origin":4166,"position":5},"title":"Building OpenPower firmware for use in POWER8 Simulator","author":"Stewart Smith","date":"2015-02-03","format":false,"excerpt":"Previously, I blogged on how to Run skiboot (OPAL) on the POWER8 Simulator. If you want to build the full Open Power firmware environment, including the Petitboot bootloader and kernel, you can now do so! My pull request for an op-build target for the simulator has been merged, so you\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=4166"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4166\/revisions"}],"predecessor-version":[{"id":4167,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4166\/revisions\/4167"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=4166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=4166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=4166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}