{"id":3919,"date":"2014-12-11T16:24:31","date_gmt":"2014-12-11T06:24:31","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=3919"},"modified":"2014-12-11T16:24:31","modified_gmt":"2014-12-11T06:24:31","slug":"skiboot-4-1","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2014\/12\/11\/skiboot-4-1\/","title":{"rendered":"skiboot-4.1"},"content":{"rendered":"<p>I just <a href=\"https:\/\/lists.ozlabs.org\/pipermail\/skiboot\/2014-December\/000046.html\">posted this to the mailing list<\/a>, but I&#8217;ve tagged skiboot-4.1, so we have another release! There&#8217;s a good amount of changes since 4.0 nearly a month ago and this is the second release since we <a href=\"https:\/\/www.flamingspork.com\/blog\/2014\/07\/17\/openpower-firmware-up-on-github\/\">hit github back in July<\/a>.<\/p>\n<p>For the full set of changes, &#8220;git log&#8221; is your friend, but a summary of them follows:<\/p>\n<ul>\n<li>We now build with -fstack-protector and -Werror<\/li>\n<li>Stack checking extensions when built with STACK_CHECK=1<\/li>\n<li>Reduced stack usage in some areas, -Wstack-usage=1024 now.\n<ul>\n<li>Some functions could use 2kb stack, now all are &lt;1kb<\/li>\n<\/ul>\n<\/li>\n<li>Unsafe libc functions such as sprintf() have been removed<\/li>\n<li>Symbolic backtraces<\/li>\n<li>expose skiboot symbol map to OS (via device-tree)<\/li>\n<li>removed machine check interrupt patching in OPAL<\/li>\n<li>occ\/hbrt: Call stopOCC() for implementing reset OCC command from FSP<\/li>\n<li>occ: Fix the low level ACK message sent to FSP on receiving {RESET\/LOAD}_OCC<\/li>\n<li>hardening to errors of various FSP code\n<ul>\n<li>fsp: Avoid NULL dereference in case of invalid class_resp bits<\/li>\n<li>abort if device tree parsing fails<\/li>\n<li>FSP: Validate fsp_msg in fsp_queue_msg<\/li>\n<li>fsp-elog: Add various NULL checks<\/li>\n<\/ul>\n<\/li>\n<li>Finessing of when to use error log vs prerror()<\/li>\n<li>More i2c work<\/li>\n<li>Can now run under Mambo simulator (see external\/mambo\/skiboot.tcl) (commonly known as &#8220;POWER8 Functional Simulator&#8221;)<\/li>\n<li>Document skiboot versioning scheme<\/li>\n<li>opal: Handle more TFAC errors.\n<ul>\n<li>TB_RESIDUE_ERR, FW_CONTROL_ERR and CHIP_TOD_PARITY_ERR<\/li>\n<\/ul>\n<\/li>\n<li>ipmi: populate FRU data<\/li>\n<li>rtc: Add a generic rtc cache<\/li>\n<li>ipmi\/rtc: use generic cache<\/li>\n<li>Error Logging backend for bmc based machines<\/li>\n<li>PSI: Drive link down on HIR<\/li>\n<li>occ: Fix clearing of OCC interrupt on remote fix<\/li>\n<\/ul>\n<p>So, who worked on this release? We had 84 csets from 17 developers. A total of 3271 lines were added, 1314 removed (delta 1957).<\/p>\n<table cellspacing=\"3\">\n<tbody>\n<tr>\n<th colspan=\"3\">Developers with the most changesets<\/th>\n<\/tr>\n<tr class=\"Even\">\n<td>Stewart Smith<\/td>\n<td align=\"right\">24<\/td>\n<td align=\"right\">28.6%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Benjamin Herrenschmidt<\/td>\n<td align=\"right\">17<\/td>\n<td align=\"right\">20.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Alistair Popple<\/td>\n<td align=\"right\">8<\/td>\n<td align=\"right\">9.5%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Vasant Hegde<\/td>\n<td align=\"right\">6<\/td>\n<td align=\"right\">7.1%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Ananth N Mavinakayanahalli<\/td>\n<td align=\"right\">5<\/td>\n<td align=\"right\">6.0%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Neelesh Gupta<\/td>\n<td align=\"right\">4<\/td>\n<td align=\"right\">4.8%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Mahesh Salgaonkar<\/td>\n<td align=\"right\">4<\/td>\n<td align=\"right\">4.8%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>C\u00c3\u00a9dric Le Goater<\/td>\n<td align=\"right\">3<\/td>\n<td align=\"right\">3.6%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Wei Yang<\/td>\n<td align=\"right\">3<\/td>\n<td align=\"right\">3.6%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Anshuman Khandual<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">2.4%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Shilpasri G Bhat<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">2.4%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Ryan Grimm<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Anton Blanchard<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Shreyas B. Prabhu<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Joel Stanley<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Vaidyanathan Srinivasan<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Dan Streetman<\/td>\n<td align=\"right\">1<\/td>\n<td align=\"right\">1.2%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table cellspacing=\"3\">\n<tbody>\n<tr>\n<th colspan=\"3\">Developers with the most changed lines<\/th>\n<\/tr>\n<tr class=\"Even\">\n<td>Benjamin Herrenschmidt<\/td>\n<td align=\"right\">1290<\/td>\n<td align=\"right\">35.1%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Alistair Popple<\/td>\n<td align=\"right\">963<\/td>\n<td align=\"right\">26.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Stewart Smith<\/td>\n<td align=\"right\">344<\/td>\n<td align=\"right\">9.4%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Mahesh Salgaonkar<\/td>\n<td align=\"right\">308<\/td>\n<td align=\"right\">8.4%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Ananth N Mavinakayanahalli<\/td>\n<td align=\"right\">198<\/td>\n<td align=\"right\">5.4%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Neelesh Gupta<\/td>\n<td align=\"right\">186<\/td>\n<td align=\"right\">5.1%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Vasant Hegde<\/td>\n<td align=\"right\">122<\/td>\n<td align=\"right\">3.3%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Shilpasri G Bhat<\/td>\n<td align=\"right\">39<\/td>\n<td align=\"right\">1.1%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Vaidyanathan Srinivasan<\/td>\n<td align=\"right\">24<\/td>\n<td align=\"right\">0.7%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Joel Stanley<\/td>\n<td align=\"right\">21<\/td>\n<td align=\"right\">0.6%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Wei Yang<\/td>\n<td align=\"right\">20<\/td>\n<td align=\"right\">0.5%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Anshuman Khandual<\/td>\n<td align=\"right\">15<\/td>\n<td align=\"right\">0.4%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>C\u00c3\u00a9dric Le Goater<\/td>\n<td align=\"right\">12<\/td>\n<td align=\"right\">0.3%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Shreyas B. Prabhu<\/td>\n<td align=\"right\">9<\/td>\n<td align=\"right\">0.2%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Ryan Grimm<\/td>\n<td align=\"right\">3<\/td>\n<td align=\"right\">0.1%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Anton Blanchard<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">0.1%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Dan Streetman<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">0.1%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table cellspacing=\"3\">\n<tbody>\n<tr>\n<th colspan=\"3\">Developers with the most lines removed<\/th>\n<\/tr>\n<tr class=\"Even\">\n<td>Mahesh Salgaonkar<\/td>\n<td align=\"right\">287<\/td>\n<td align=\"right\">21.8%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table cellspacing=\"3\">\n<tbody>\n<tr>\n<th colspan=\"3\">Developers with the most signoffs (total 54)<\/th>\n<\/tr>\n<tr class=\"Even\">\n<td>Stewart Smith<\/td>\n<td align=\"right\">44<\/td>\n<td align=\"right\">81.5%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Vasant Hegde<\/td>\n<td align=\"right\">4<\/td>\n<td align=\"right\">7.4%<\/td>\n<\/tr>\n<tr class=\"Even\">\n<td>Benjamin Herrenschmidt<\/td>\n<td align=\"right\">4<\/td>\n<td align=\"right\">7.4%<\/td>\n<\/tr>\n<tr class=\"Odd\">\n<td>Vaidyanathan Srinivasan<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">3.7%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table cellspacing=\"3\">\n<tbody>\n<tr>\n<th colspan=\"3\">Developers with the most reviews (total 2)<\/th>\n<\/tr>\n<tr class=\"Even\">\n<td>Vasant Hegde<\/td>\n<td align=\"right\">2<\/td>\n<td align=\"right\">100.0%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>I just posted this to the mailing list, but I&#8217;ve tagged skiboot-4.1, so we have another release! There&#8217;s a good amount of changes since 4.0 nearly a month ago and this is the second release since we hit github back &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2014\/12\/11\/skiboot-4-1\/\">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":[76,570,588,615],"tags":[586,636,587,637,584],"class_list":["post-3919","post","type-post","status-publish","format-standard","hentry","category-code","category-ibm-work-et-al","category-opal","category-powerpc","tag-firmware","tag-opal","tag-openpower","tag-powerpc","tag-skiboot"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-11d","jetpack-related-posts":[{"id":3972,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/06\/16\/opal-firmware-specification-conformance-and-documentation\/","url_meta":{"origin":3919,"position":0},"title":"OPAL firmware specification, conformance and documentation","author":"Stewart Smith","date":"2015-06-16","format":false,"excerpt":"Now that we have an increasing amount of things that run on top of OPAL: Linux hello_world (in skiboot tree) ppc64le_hello (as I wrote about yesterday) FreeBSD and that the OpenPower ecosystem is rapidly growing (especially around people building OpenPower machines), the need for more formal specification, conformance testing and\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":3910,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/12\/03\/skibootopal-versioning\/","url_meta":{"origin":3919,"position":1},"title":"skiboot\/OPAL versioning","author":"Stewart Smith","date":"2014-12-03","format":false,"excerpt":"skiboot is boot and runtime firmware for OpenPower systems. There are other components that make up all the firmware you need, but if you're, say, a Linux kernel, you're going to be interacting with skiboot. I recently committed doc\/versioning.txt to skiboot to try and explain our current thoughts on versioning\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4076,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/07\/12\/using-smatch-static-analysis-on-openpower-opal-firmware\/","url_meta":{"origin":3919,"position":2},"title":"Using Smatch static analysis on OpenPOWER OPAL firmware","author":"Stewart Smith","date":"2016-07-12","format":false,"excerpt":"For Skiboot, I'm always looking at new automated systems to find bugs in the code. A little while ago, I read about the Smatch tool developed by some folks at Oracle (they also wrote about using it on the Linux kernel). I was eager to try it with skiboot to\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":4055,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/05\/10\/first-power9-bits-merged-into-skiboot-master\/","url_meta":{"origin":3919,"position":3},"title":"First POWER9 bits merged into skiboot master","author":"Stewart Smith","date":"2016-05-10","format":false,"excerpt":"I just merged in some base POWER9 support patches into skiboot. While this is in no way near complete or really enough to be interesting to anyone that isn't heavily involved in POWER9 development, it's nice to take upstream first and open source first so seriously that this level of\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"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":3919,"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":4072,"url":"https:\/\/www.flamingspork.com\/blog\/2016\/06\/20\/building-opal-firmware-for-power9\/","url_meta":{"origin":3919,"position":5},"title":"Building OPAL firmware for POWER9","author":"Stewart Smith","date":"2016-06-20","format":false,"excerpt":"Recently, we merged into the op-build project (the build scripts for OpenPOWER Firmware) a defconfig for building OPAL for (certain) POWER9 simulators. I won't bother linking over to articles on the POWER9 chip or schedule (there's search engines for that), but with this commit - if you happen to be\u2026","rel":"","context":"In &quot;IBM&quot;","block_context":{"text":"IBM","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/ibm-work-et-al\/"},"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\/3919","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=3919"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3919\/revisions"}],"predecessor-version":[{"id":3920,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3919\/revisions\/3920"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=3919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=3919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=3919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}