diff options
-rw-r--r-- | include/fw_context.h | 1 | ||||
-rw-r--r-- | utils/fwparam_ibft/fw_entry.c | 8 | ||||
-rw-r--r-- | utils/fwparam_ibft/fwparam_ibft_sysfs.c | 2 | ||||
-rw-r--r-- | utils/fwparam_ibft/fwparam_sysfs.c | 2 |
4 files changed, 10 insertions, 3 deletions
diff --git a/include/fw_context.h b/include/fw_context.h index 6563d68..295b54d 100644 --- a/include/fw_context.h +++ b/include/fw_context.h @@ -48,6 +48,7 @@ struct boot_context { char initiatorname[TARGET_NAME_MAXLEN + 1]; /* network settings */ + char origin[2]; char dhcp[NI_MAXHOST]; char iface[IF_NAMESIZE]; char mac[18]; diff --git a/utils/fwparam_ibft/fw_entry.c b/utils/fwparam_ibft/fw_entry.c index b6f05c1..295e905 100644 --- a/utils/fwparam_ibft/fw_entry.c +++ b/utils/fwparam_ibft/fw_entry.c @@ -192,10 +192,12 @@ static void dump_network(struct boot_context *context) if (strlen(context->mac)) printf("%s = %s\n", IFACE_HWADDR, context->mac); /* - * If this has a valid address then DHCP was used (broadcom sends - * 0.0.0.0). + * If the 'origin' field is '3' then DHCP is used. + * Otherwise evaluate the 'dhcp' field, if this has a valid + * address then DHCP was used (broadcom sends 0.0.0.0). */ - if (strlen(context->dhcp) && strcmp(context->dhcp, "0.0.0.0")) + if ((strlen(context->origin) && !strcmp(context->origin, "3")) || + (strlen(context->dhcp) && strcmp(context->dhcp, "0.0.0.0"))) printf("%s = DHCP\n", IFACE_BOOT_PROTO); else printf("%s = STATIC\n", IFACE_BOOT_PROTO); diff --git a/utils/fwparam_ibft/fwparam_ibft_sysfs.c b/utils/fwparam_ibft/fwparam_ibft_sysfs.c index 9185c85..2dc6f6d 100644 --- a/utils/fwparam_ibft/fwparam_ibft_sysfs.c +++ b/utils/fwparam_ibft/fwparam_ibft_sysfs.c @@ -201,6 +201,8 @@ static int fill_nic_context(char *id, struct boot_context *context) sizeof(context->secondary_dns)); sysfs_get_str(id, IBFT_SUBSYS, "dhcp", context->dhcp, sizeof(context->dhcp)); + sysfs_get_str(id, IBFT_SUBSYS, "origin", context->origin, + sizeof(context->origin)); return 0; } diff --git a/utils/fwparam_ibft/fwparam_sysfs.c b/utils/fwparam_ibft/fwparam_sysfs.c index 2f37b59..09dd9fd 100644 --- a/utils/fwparam_ibft/fwparam_sysfs.c +++ b/utils/fwparam_ibft/fwparam_sysfs.c @@ -217,6 +217,8 @@ static int fill_nic_context(char *subsys, char *id, sizeof(context->secondary_dns)); sysfs_get_str(id, subsys, "dhcp", context->dhcp, sizeof(context->dhcp)); + sysfs_get_str(id, subsys, "origin", context->origin, + sizeof(context->origin)); return 0; } |