X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fplatform-powerpc.c;h=3723ebf824df6fcee31c4571d900f5159f410165;hp=e5c83a07e1c46039f2fcdf0fca7c3ce778d678a5;hb=722e64564e436a0491563c9f57a49dfee5c50dd9;hpb=5bf4ee3677385d655ad06878b9a504f606baa73e diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c index e5c83a0..3723ebf 100644 --- a/discover/platform-powerpc.c +++ b/discover/platform-powerpc.c @@ -755,21 +755,8 @@ static void set_ipmi_bootdev(struct config *config, enum ipmi_bootdev bootdev, config->ipmi_bootdev = bootdev; config->ipmi_bootdev_persistent = persistent; - switch (bootdev) { - case IPMI_BOOTDEV_NONE: - case IPMI_BOOTDEV_DISK: - case IPMI_BOOTDEV_NETWORK: - case IPMI_BOOTDEV_CDROM: - default: - break; - case IPMI_BOOTDEV_SETUP: - config->autoboot_enabled = false; - break; - case IPMI_BOOTDEV_SAFE: - config->autoboot_enabled = false; + if (bootdev == IPMI_BOOTDEV_SAFE) config->safe_mode = true; - break; - } } static int read_bootdev_sysparam(const char *name, uint8_t *val) @@ -1046,7 +1033,6 @@ static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info) struct platform_powerpc *platform = p->platform_data; uint16_t resp_len = 16; uint8_t resp[16], bcd; - uint32_t aux_version; int i, rc; /* Retrieve info from current side */ @@ -1074,10 +1060,11 @@ static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info) resp[2]); bcd = resp[4] & 0x0f; bcd += 10 * (resp[4] >> 4); - memcpy(&aux_version, &resp[12], sizeof(aux_version)); + /* rev1.rev2.aux_revision */ info->bmc_current[2] = talloc_asprintf(info, - "Firmware version: %u.%02u.%05u", - resp[3], bcd, aux_version); + "Firmware version: %u.%02u.%02x%02x%02x%02x", + resp[3], bcd, resp[12], + resp[13], resp[14], resp[15]); bcd = resp[5] & 0x0f; bcd += 10 * (resp[5] >> 4); info->bmc_current[3] = talloc_asprintf(info, "IPMI version: %u", @@ -1112,10 +1099,11 @@ static void get_ipmi_bmc_versions(struct platform *p, struct system_info *info) resp[2]); bcd = resp[4] & 0x0f; bcd += 10 * (resp[4] >> 4); - memcpy(&aux_version, &resp[12], sizeof(aux_version)); + /* rev1.rev2.aux_revision */ info->bmc_golden[2] = talloc_asprintf(info, - "Firmware version: %u.%02u.%u", - resp[3], bcd, aux_version); + "Firmware version: %u.%02u.%02x%02x%02x%02x", + resp[3], bcd, resp[12], + resp[13], resp[14], resp[15]); bcd = resp[5] & 0x0f; bcd += 10 * (resp[5] >> 4); info->bmc_golden[3] = talloc_asprintf(info, "IPMI version: %u", @@ -1267,7 +1255,7 @@ static int load_config(struct platform *p, struct config *config) rc = parse_nvram(platform); if (rc) - return rc; + pb_log("%s: Failed to parse nvram\n", __func__); populate_config(platform, config);