11acb412dSIftekharul Islam<loader loading="loading"></loader> 243366db7SMichael Davis<div class="row column"> 343366db7SMichael Davis <h1>Firmware</h1> 443366db7SMichael Davis <div class="column small-12 page-header"> 5706b75b3SMichael Davis <h2 class="inline h4">Manage BMC and server firmware</h2> 69486f54aSMichael Davis </div> 79486f54aSMichael Davis</div> 89486f54aSMichael Davis<div class="row column"> 974b05409SGunnar Mills <p>Use the following tables to manage firmware image files. The image file that is listed at the top, the image with the highest boot priority, is used the next time that the device is booted. To change the boot priority for the image, click the arrow icons.</p> 10b27188e8SMichael Davis <p><a ng-click="gotoAnchor()">Scroll down to upload an image file</a> to transfer a new firmware image to the BMC. After uploading a new image, Activate it to make it available for use.</p> 119486f54aSMichael Davis</div> 12c016139fSIftekharul Islam<firmware-list title="BMC images" version="bmcActiveVersion" firmwares="firmwares" filter-by="filters.bmc"></firmware-list> 13c016139fSIftekharul Islam<firmware-list title="Server images" version="hostActiveVersion" firmwares="firmwares" filter-by="filters.host"></firmware-list> 149486f54aSMichael Davis<div class="row column" id="upload"> 1543366db7SMichael Davis <div class="column small-12 page-header"> 16b27188e8SMichael Davis <h2 class="inline h3 bold">Specify image file location</h2> 1743366db7SMichael Davis </div> 1843366db7SMichael Davis <form id="firmware__upload-form" role="form" class="firmware__upload-form"> 19b27188e8SMichael Davis <p>Specify an image file located on your workstation or a TFTP server. An image file may contain firmware images for the server, BMC, or other hardware devices. Each image that you upload will be unpacked from the image file and added to the appropriate list above.</p> 209486f54aSMichael Davis <div class=" column firmware__upload-station"> 21b27188e8SMichael Davis <h3 class="h4 bold">Upload image file from workstation</h3> 22b27188e8SMichael Davis <p>Select the image file saved on the workstation storage medium to upload to the server BMC.</p> 239486f54aSMichael Davis <label for="file-upload" class="inline firmware__upload-chooser"> 24c016139fSIftekharul Islam <input id="file-upload" type="file" file="file" class="hide" onchange="angular.element(this).scope().fileNameChanged()"/> 259486f54aSMichael Davis <span class="button btn-secondary inline">Choose a file</span> 26c016139fSIftekharul Islam <span class="inline firmware__upload-file-name"><span ng-if="!file">No file chosen</span><span ng-if="file.name !== undefined">{{file.name}}</span></span> 2743366db7SMichael Davis </label> 28c016139fSIftekharul Islam <input type="button" value="Upload firmware" class="inline button btn-primary float-right" ng-click="upload()"/> 29c016139fSIftekharul Islam <div class="inline uploading" ng-show="uploading">Upload in progress...</div> 30f97adb9fSCamVan Nguyen <p class="download_success" ng-show="upload_success" role="alert">{{file ? '' : 'Upload complete. Check image tables above.'}}</p> 3143366db7SMichael Davis </div> 329486f54aSMichael Davis <div class=" column firmware__upload-tftp"> 33b27188e8SMichael Davis <h3 class="h4 bold">Download image file from TFTP server</h3> 34b27188e8SMichael Davis <p>Specify both the TFTP server IP address and the image file name stored on it to download to the server BMC.</p> 3543366db7SMichael Davis <fieldset> 369486f54aSMichael Davis <div class="row"> 379486f54aSMichael Davis <div class="column small-12 large-4"> 38b27188e8SMichael Davis <label for="tftp-ip">TFTP Server IP address</label> 391acb412dSIftekharul Islam <input name="tftp-ip" id="tftp-ip" type="text" ng-model="download_host"/> 4043366db7SMichael Davis </div> 419486f54aSMichael Davis <div class="column small-12 large-4"> 4243366db7SMichael Davis <label for="tftp-file-name">File name</label> 431acb412dSIftekharul Islam <input name="tftp-file-name" id="tftp-file-name" type="text" ng-model="download_filename"/> 4443366db7SMichael Davis </div> 459486f54aSMichael Davis <div class="column small-12 large-4"> 461acb412dSIftekharul Islam <input type="button" value="Download firmware" class="inline button btn-primary float-right" ng-click="download()"/> 479486f54aSMichael Davis </div> 489486f54aSMichael Davis </div> 49c016139fSIftekharul Islam <div class="inline uploading" ng-show="downloading">Downloading in progress...</div> 506d7b4a8dSGunnar Mills <p class="download_error error-msg" ng-show="download_error_msg" role="alert">{{download_error_msg}}</p> 5158301ec8SCamVan Nguyen <p class="download_success" ng-show="download_success" role="alert">Download complete. Check image tables above.</p> 5243366db7SMichael Davis </fieldset> 5343366db7SMichael Davis </div> 5443366db7SMichael Davis </form> 559486f54aSMichael Davis</div> 569486f54aSMichael Davis 579486f54aSMichael Davis<!-- Firmware modals --> 58c016139fSIftekharul Islam<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': display_error}"> 599486f54aSMichael Davis <div class="modal__upload-fail" role="document"> 60c016139fSIftekharul Islam <div class="screen-reader-offscreen modal-description">{{error.modal_title}}</div><!-- accessibility only; used for screen readers --> 619486f54aSMichael Davis <div class="page-header "> 62c016139fSIftekharul Islam <span class="icon icon__warning inline"><span class="accessible-text" role="alert">{{error.type}}</span></span> 63c016139fSIftekharul Islam <h1 class="modal-title h4 inline">{{error.title}}</h1> 649486f54aSMichael Davis </div> 659486f54aSMichael Davis <div class="modal__content"> 66c016139fSIftekharul Islam <p>{{error.desc}}</p> 679486f54aSMichael Davis </div> 689486f54aSMichael Davis <div class="modal__button-wrapper"> 69c016139fSIftekharul Islam <button class="inline btn-primary" ng-click="display_error = false;">Close</button> 709486f54aSMichael Davis </div> 719486f54aSMichael Davis </div> 7243366db7SMichael Davis</section> 73c016139fSIftekharul Islam 741acb412dSIftekharul Islam<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': confirm_priority}"> 751acb412dSIftekharul Islam <div class="modal__tftp-unreachable" role="document"> 761acb412dSIftekharul Islam <div class="screen-reader-offscreen modal-description">Update image priority</div><!-- accessibility only; used for screen readers --> 771acb412dSIftekharul Islam <div class="page-header "> 781acb412dSIftekharul Islam <span class="icon icon__warning inline"><span class="accessible-text" role="alert">Warning</span></span> 791acb412dSIftekharul Islam <h1 class="modal-title h4 inline">Change image priority</h1> 801acb412dSIftekharul Islam </div> 811acb412dSIftekharul Islam <div class="modal__content"> 826473a41dSGunnar Mills <p>Change firmware {{priority_image_version}} priority?</p> 831acb412dSIftekharul Islam </div> 841acb412dSIftekharul Islam <div class="modal__button-wrapper"> 851acb412dSIftekharul Islam <button class="inline btn-secondary" ng-click="confirm_priority=false;">Cancel</button> 861acb412dSIftekharul Islam <button class="inline btn-primary" ng-click="confirmChangePriority()">Continue</button> 871acb412dSIftekharul Islam </div> 881acb412dSIftekharul Islam </div> 891acb412dSIftekharul Islam</section> 901acb412dSIftekharul Islam 91c016139fSIftekharul Islam<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': confirm_delete}"> 929486f54aSMichael Davis <div class="modal__tftp-unreachable" role="document"> 939486f54aSMichael Davis <div class="screen-reader-offscreen modal-description">Delete firmware image</div><!-- accessibility only; used for screen readers --> 949486f54aSMichael Davis <div class="page-header "> 959486f54aSMichael Davis <span class="icon icon__warning inline"><span class="accessible-text" role="alert">Warning</span></span> 969486f54aSMichael Davis <h1 class="modal-title h4 inline">Delete image</h1> 979486f54aSMichael Davis </div> 989486f54aSMichael Davis <div class="modal__content"> 99c016139fSIftekharul Islam <p>Delete firmware {{delete_image_version}}?</p> 1009486f54aSMichael Davis </div> 1019486f54aSMichael Davis <div class="modal__button-wrapper"> 102c016139fSIftekharul Islam <button class="inline btn-secondary" ng-click="confirm_delete=false;">Cancel</button> 103c016139fSIftekharul Islam <button class="inline btn-primary" ng-click="confirmDeleteImage()">Continue</button> 1049486f54aSMichael Davis </div> 1059486f54aSMichael Davis </div> 1069486f54aSMichael Davis</section> 107c016139fSIftekharul Islam 108e7f83970SGunnar Mills<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog" ng-class="{'active': activate_confirm}"> 109e7f83970SGunnar Mills <div class="modal__activate" role="document"> 110e7f83970SGunnar Mills <div class="screen-reader-offscreen modal-description">Activate modal</div><!-- accessibility only; used for screen readers --> 1119486f54aSMichael Davis <div class="page-header "> 1129486f54aSMichael Davis <h1 class="modal-title h4"><span class="icon icon__info"><svg xmlns="http://www.w3.org/2000/svg" 1139486f54aSMichael Davis viewBox="0 0 32 32"><path 1149486f54aSMichael Davis d="M18 14h-6v2h1v6h-2v2h8v-2h-2z"/><circle cx="16" cy="10" r="2"/><path 1159486f54aSMichael Davis d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14 14-6.269 14-14S23.731 2 16 2zm0 26C9.383 28 4 22.617 4 16S9.383 4 16 4s12 5.383 12 12-5.383 12-12 12z"/></svg></span> 116ee6efd85SGunnar Mills <!-- We call "Host" firmware "server" firmware --> 117ee6efd85SGunnar Mills Confirm {{activate_image_type == 'Host' ? 'server' : activate_image_type}} firmware file activation 1189486f54aSMichael Davis </h1> 1199486f54aSMichael Davis </div> 1209486f54aSMichael Davis <div class="modal__content"> 121ee6efd85SGunnar Mills <div ng-switch on="activate_image_type"> 1226d9ef5acSGunnar Mills <p ng-switch-when="BMC">When you activate the BMC firmware file, {{activate_image_version}}, the BMC must be rebooted before it will operate with the new firmware code. Note that when you reboot the BMC, the BMC will be unavailable for several minutes and you must log in again.</p> 123*c3abaa9bSbeccabroek <p ng-switch-when="Host">When you activate the server firmware file, {{activate_image_version}}, the new firmware will not operate until the next time the server boots.</p> 124ee6efd85SGunnar Mills </div> 125ee6efd85SGunnar Mills <form ng-if="activate_image_type == 'BMC'"> 1269486f54aSMichael Davis <fieldset> 1279486f54aSMichael Davis <div class="row column"> 128e7f83970SGunnar Mills <label class="control-radio bold" for="activate-without-reboot">Activate firmware file without rebooting BMC 1296d9ef5acSGunnar Mills <input type="radio" name="activate-without-reboot" id="activate-without-reboot" ng-model="activate.reboot" ng-value="false"/> 1309486f54aSMichael Davis <span class="control__indicator control__indicator-on"></span> 1319486f54aSMichael Davis </label> 1329486f54aSMichael Davis </div> 1336d9ef5acSGunnar Mills <div class="row column"> 1346d9ef5acSGunnar Mills <label class="control-radio bold" for="activate-with-reboot">Activate firmware file and automatically reboot BMC 1356d9ef5acSGunnar Mills <input type="radio" name="activate-with-reboot" id="activate-with-reboot" ng-model="activate.reboot" ng-value="true"/> 1366d9ef5acSGunnar Mills <span class="control__indicator control__indicator-on"></span> 1376d9ef5acSGunnar Mills </label> 1386d9ef5acSGunnar Mills </div> 1399486f54aSMichael Davis </fieldset> 1409486f54aSMichael Davis </form> 141*c3abaa9bSbeccabroek <form ng-if="activate_image_type == 'Host'"> 142*c3abaa9bSbeccabroek <fieldset> 143*c3abaa9bSbeccabroek <div class="row column"> 144*c3abaa9bSbeccabroek <label class="control-radio bold" for="activate-host-without-reboot">Activate firmware file without {{isServerOff() ? "booting" : "rebooting"}} server 145*c3abaa9bSbeccabroek <input type="radio" name="activate-host-without-reboot" id="activate-host-without-reboot" ng-model="activate.reboot" ng-value="false"/> 146*c3abaa9bSbeccabroek <span class="control__indicator control__indicator-on"></span> 147*c3abaa9bSbeccabroek </label> 148*c3abaa9bSbeccabroek </div> 149*c3abaa9bSbeccabroek <div class="row column"> 150*c3abaa9bSbeccabroek <label class="control-radio bold" for="activate-host-with-reboot">Activate firmware file and automatically {{isServerOff() ? "boot" : "reboot"}} server 151*c3abaa9bSbeccabroek <input type="radio" name="activate-host-with-reboot" id="activate-host-with-reboot" ng-model="activate.reboot" ng-value="true"/> 152*c3abaa9bSbeccabroek <span class="control__indicator control__indicator-on"></span> 153*c3abaa9bSbeccabroek </label> 154*c3abaa9bSbeccabroek </div> 155*c3abaa9bSbeccabroek </fieldset> 156*c3abaa9bSbeccabroek </form> 1579486f54aSMichael Davis </div> 1589486f54aSMichael Davis <div class="modal__button-wrapper"> 159e7f83970SGunnar Mills <button class="inline btn-secondary" ng-click="activate_confirm=false;">Cancel</button> 160e7f83970SGunnar Mills <button class="inline btn-primary" ng-click="activateConfirmed()">Continue</button> 1619486f54aSMichael Davis </div> 1629486f54aSMichael Davis </div> 1639486f54aSMichael Davis</section> 16451b03887SGunnar Mills<div class="modal-overlay" tabindex="-1" ng-class="{'active': (display_error || activate_confirm)}"></div> 165