summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* In GRUB2 parser save_env, treat unset variable value as emptyAlan Dunn2016-03-152-0/+10
| | | | | | | | | | | | | | It seems better to treat unset variable values as empty rather than crashing in save_env. While GRUB's behavior is actually to delete the variable from the environment block, it seems useful to at least not crash while later on someone can do further work to improve GRUB compatibility if desired. Tested: Modified test-grub2-save-env to cover this case. Signed-off-by: Alan Dunn <amdunn@google.com> Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* po: Update help string and add untranslated stringsSam Mendoza-Jonas2016-03-0711-32/+296
| | | | | | | | Update the nc-lang help string translation to reflect the change introduced in the previous commit, "Remove "h=help" hint in language page". Also update each .po file with any new strings lacking a translation. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* Merge pull request #13 from johnhihi/masterSam Mendoza-Jonas2016-03-071-1/+1
|\ | | | | Remove "h=help" hint in language page
| * Remove "h=help" hint in language pageJohnny2016-03-021-1/+1
| | | | | | | | Signed-off-by: Johnny <johnny.cl.chang@foxconn.com>
* | lib/flash: Fix version side being interpreted backwardsSam Mendoza-Jonas2016-03-051-1/+1
|/ | | | Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* Use 'Primary' instead of 'Current' for flash sidesSam Mendoza-Jonas2016-02-264-18/+18
| | | | | | | | | | | | When queried libflash will return the 'first' flash side (ie. the one with the lowest TOC address), however we label this the 'Current' side which is incorrect if the machine has booted from the alternate side. A future fix will inlcude additional platform logic to determine which flash side is current; in the interim label the first flash side as 'Primary' instead of 'Current'. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover: Include leading zero in firmware version stringSam Mendoza-Jonas2016-02-261-2/+2
| | | | Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover: Add support for IPMI network overrideSam Mendoza-Jonas2016-02-263-0/+196
| | | | | | | | | | | | | | | | | | | | | | On BMC platforms the 'Get System Boot Options' command can also be used to check for a temporary network interface config override. This is implemented via the optional 'OEM Parameters' field defined in the IPMI v2 spec. We define the actual format of the field as: - 4 byte cookie value - 2 byte version value - 1 byte hardware address size - 1 byte IP address size - Hardware address - 1 byte flags for 'ignore' and 'method' And for static configs: - IP Address - 1 byte subnet value - Gateway address If set the config override replaces any other interface config, forcing the use of the specified configuration. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* utils/hooks: Write offb device address to device treeSam Mendoza-Jonas2016-02-253-0/+512
| | | | | | | | | | | On OpenPOWER machines, kernels missing the AST video driver can use the existing 'Open Firmware' framebuffer device code to inherit an existing framebuffer from Petitboot. This requires us to translate the 64-bit address of the framebuffer 'back' into a PCI address and write it into an assigned-addresses property in the device tree. Bootstrapped-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* ui/ncurses: Add missing newline in nc-sysinfoSam Mendoza-Jonas2016-02-101-0/+1
| | | | Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* Retrieve BMC version info via IPMISam Mendoza-Jonas2016-02-105-1/+154
| | | | | | | | On BMC machines the "Get Device ID" and "Get BMC Golden Side Version" IPMI commands are available. If possible retrieve some interesting version numbers and display them in the System Information screen. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* Display VERSION partition info on BMC machinesSamuel Mendoza-Jonas2016-02-097-0/+124
| | | | | | | | | | On supported platforms read the VERSION partition on startup and display the available versions strings in the System Information screen. This adds a skeleton hostboot.c to support possible additional BMC platform support. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* lib/flash: Add support for platform versionsSamuel Mendoza-Jonas2016-02-094-1/+273
| | | | | | | | | | | | | Add basic libflash support to read the VERSION partition on BMC machines. This adds a dependency on the libflash shared library from Skiboot. The MTD partition is accessed through the libflash helper functions. Once read into a buffer, the VERSION partition is a simple list of newline-terminated version strings. Some BMC platforms may have two 'sides' to flash - these are interpreted as the "current" and "other" sides depending on which one the current Petitboot is running from. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* lib: Add CCAN headers for endian helpersSamuel Mendoza-Jonas2016-02-096-0/+550
| | | | Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* Add --enable-mtd configure optionSamuel Mendoza-Jonas2016-02-091-0/+15
| | | | | | Support optionally building features that rely on libflash support. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover: Print IPMI bootdev response for debugSam Mendoza-Jonas2016-02-091-0/+5
| | | | Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover/grub: Fix handling of empty stringsSam Mendoza-Jonas2016-02-092-1/+11
| | | | | | | | | | | If "" or '' are used in a statement to omit a word, we must still return a TOKEN_WORD for an empty string. In particular this fixes an issue where Petitboot would fail to parse the grub.cfg included in the Debian 8.2 install image, which includes a menuentry statement with an empty name. Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* lib/talloc: Avoid early exit before va_end()Samuel Mendoza-Jonas2016-02-091-1/+3
| | | | | | Fixes Coverity defect #30486 Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover: Release process resources on errorSamuel Mendoza-Jonas2016-02-091-2/+4
| | | | | | Fixes Coverity defect #30472 Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* ui/common: Only close valid file descriptorSamuel Mendoza-Jonas2016-02-091-2/+2
| | | | | | Fixes Coverity defect #30466 Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover: Handle BTRFS root subvolumesSam Mendoza-Jonas2016-02-093-1/+27
| | | | | | | | | | | | | | | | | | During install some distributions[0] will create subvolumes when formatting the root filesystem with BTRFS. In particular this can mean that bootloader config files will appear (in the case of GRUB) under /var/petitboot/mnt/dev/$device/@/boot/grub/ rather than the expected /var/petitboot/mnt/dev/$device/boot/grub/ If this is the case, perform all file operations from the parser relative to this subvolume rather than the mount point. At the moment this only supports the trivial case where the subvolume name for root is blank (ie. '@'). [0] In particular, Ubuntu from at least 14.04 Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* discover/grub2: Fix behavior of save_env -fAlan Dunn2016-02-083-3/+52
| | | | | | | | | | | | | | | Currently, "save_env -f" in the GRUB2 parser only works with three arguments, which means only commands of the form "save_env -f <path>" that save *no* environment variables are allowed. Allow "save_env -f <path> [<var>]*", making "save_env -f" useful. Tested: Unit test test-grub2-save-env-dash-f tests this change, and the remaining unit tests still pass. Signed-off-by: Alan Dunn <amdunn@google.com> Signed-off-by: Sam Mendoza-Jonas <sam@mendozajonas.com>
* lib/pb-protocol: Fix NULL dereference on non-powerpcSamuel Mendoza-Jonas2015-12-211-1/+4
| | | | | | | | If not running on a powerpc platform the bmc_mac pointer remains NULL. If this is the case set an address of zero when serialising rather than dereferencing the pointer. Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* discover: extend URL in UI to support auto-discoveryNishanth Aravamudan2015-12-185-11/+29
| | | | | | | | | | | | | The URL field currently only supports loading a particular file for static network configurations. But it makes sense in certain static network configurations to 'auto-discover' a file like petitboot does with DHCP -- based off the MAC address and IP. Extend device_handler_process_url to take those as parameters, and toggle off the URL ending in a '/' to indicate whether to 'auto-discover' or directly load the specified URL. Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com> Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* ui: add URL for static configurations to load a specified fileNishanth Aravamudan2015-12-186-9/+56
| | | | | | | | | | | | In certain configurations, e.g. automation, we want to use static networking but load a particular file, automatically and parse it as a pxelinux config file. Currently, we support something like this for DHCP based booting, but not static. Add a URL field to the UI for static configurations and reuse the logic from device_handler_process_url() to load the specified file. Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com> Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* Merge pull request #11 from open-power/coveritySam Mendoza-Jonas2015-12-1812-36/+40
|\ | | | | Coverity fixes
| * ui/ncurses: Remove redundant assignmentSamuel Mendoza-Jonas2015-12-181-3/+1
| | | | | | | | | | | | Fixes Coverity defect #30484 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Set umask before mkstemp()Samuel Mendoza-Jonas2015-12-181-0/+5
| | | | | | | | | | | | Fixes Coverity defect #30479 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Null-terminate buffer in user_event_process()Samuel Mendoza-Jonas2015-12-181-2/+4
| | | | | | | | | | | | Fixes Coverity defect #30480 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Add two missing talloc_free()sSamuel Mendoza-Jonas2015-12-182-0/+2
| | | | | | | | | | | | Fixes Coverity defects #30474 and #30475 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Skip malformed bootdev fieldsSamuel Mendoza-Jonas2015-12-181-5/+2
| | | | | | | | | | | | Fixes Coverity defect #30471 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * ui/common: Free message on returnSamuel Mendoza-Jonas2015-12-181-6/+7
| | | | | | | | | | | | Fixes Coverity defect #30468 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * lib/talloc: Add missing va_end() callsSamuel Mendoza-Jonas2015-12-181-0/+2
| | | | | | | | | | | | Fixes Coverity defects #30485 and #30486 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Fix dead code in udev_handle_cdrom_events()Samuel Mendoza-Jonas2015-12-181-3/+1
| | | | | | | | | | | | | | | | | | The check against ddev->mounted to cause an eject action is logically impossible. Change it so a cdrom_eject() is called properly. Change the return value to 'true' for any action caused by DISK_EJECT_REQUEST - no further action is appropriate in this case Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * ui/ncurses: Check for NULL in pmenu_item_get_index()Samuel Mendoza-Jonas2015-12-171-3/+4
| | | | | | | | | | | | Fixes Coverity defect #30476 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Use snprintf() when building sysparam pathSamuel Mendoza-Jonas2015-12-171-6/+4
| | | | | | | | | | | | Fixes Coverity defects #30481 and #30482 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
| * discover: Properly handle return valuesSamuel Mendoza-Jonas2015-12-174-8/+8
|/ | | | | | | | Fixes three unchecked return values, and one missing initialisation. Fixes Coverity defects #30450, #30451, #30454, and #30483 Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* Merge pull request #10 from themoken/masterSam Mendoza-Jonas2015-12-175-3/+56
|\ | | | | Add BMC interface MAC to system info output
| * Add BMC interface MAC to system info outputJack Miller2015-12-155-3/+56
|/ | | | | | Useful for identifying the initial BMC traffic on the network. Signed-off-by: Jack Miller <jack@codezen.org>
* po: Translation updatesSamuel Mendoza-Jonas2015-11-1111-46/+43
| | | | | | | | | - Abbreviate several translations of "Disk R/W". - Do not expand 'DHCP' in pt_BR. - Remove several extra space characters in French translations. - Shorten some translations of "Boot Order", "DNS Servers". Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* po: Translation UpdatesSamuel Mendoza-Jonas2015-11-023-19/+21
| | | | | | Abbreviation and help text updates. Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
* discover/ipmi: Increase IPMI timeout to a reasonable valueJeremy Kerr2015-09-301-1/+1
| | | | | | | | | | | | | | | | | We've seen some IPMI timeouts during testing - meaning that an IPMI bootdev setting will be ignored. This can result in a machine booting from an incorrect boot device, or missing a 'safe mode' indication, or incorrectly proceeding past petitboot. The firmware & kernel has its own timeout & retry mechanism, so we already have a little error-recovery there; the timeout in petitboot is to prevent an indefinite block if the kernel interface isn't behaving correctly. So, this change bumps the timeout to a value that suits BMCs we've seen in the field (specifying a 2 second timeout, with one retry). Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover/ipmi: Use advisory locking on ipmi deviceJeremy Kerr2015-09-301-4/+22
| | | | | | | | | | | | The ipmi module is shared between pb-config and pb-discover. During system initilisation, we're likely to have a few invocations of pb-config running, as well as pb-discover starting. We may have multiple potential concurrent accesses to the ipmi device node. To avoid problems, this change introduces a fcntl lock on the device node. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover/devmapper: Use explicit 64-bit types for sector countsJeremy Kerr2015-09-302-12/+14
| | | | | | | | | We currently have a bug where the return value from get_block_sectors may overflow an unsigned int, so we create a snapshot that is too small. This change uses uint64_t types for the sector counts. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Set default languageJeremy Kerr2015-09-241-1/+11
| | | | | | | Rather than setting NULL, do a setlocale(LC_ALL, NULL) to query the system locale value as our default. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* po: Add missed translations fixesJeremy Kerr2015-09-181-3/+3
| | | | | | We have a few manual fixes missing from the fr.po translation. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: status messages shouldn't have a trailing newlineJeremy Kerr2015-09-1812-23/+23
| | | | | | Fix the status message, and remove the newline from our translations. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* po: Manual translation formatting fixesJeremy Kerr2015-09-1810-58/+58
| | | | | | | We have a few minor issues, mostly formatting, from the latest translation drop. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* po: translation updatesJeremy Kerr2015-09-1810-421/+897
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* discover: Add translation comments for status messagesJeremy Kerr2015-09-182-1/+33
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
OpenPOWER on IntegriCloud