[U-Boot] [PATCH 5/8] cmd: bootvx: Pass netmask and gatewayip to VxWorks bootline
Bin Meng
bmeng.cn at gmail.com
Fri Sep 25 04:34:06 CEST 2015
On Thu, Sep 24, 2015 at 5:21 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
> There are fields in VxWorks bootline for netmask and gatewayip.
> We can get these from U-Boot environment variables and pass them
> to VxWorks, just like ipaddr and serverip.
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
>
> common/cmd_elf.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/common/cmd_elf.c b/common/cmd_elf.c
> index 62863df..5a34bde 100644
> --- a/common/cmd_elf.c
> +++ b/common/cmd_elf.c
> @@ -287,13 +287,24 @@ int do_bootvx(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> "%s:file ", CONFIG_SYS_VXWORKS_SERVERNAME);
>
> tmp = getenv("ipaddr");
> - if (tmp)
> - sprintf(&build_buf[strlen(build_buf)], "e=%s ", tmp);
> + if (tmp) {
> + sprintf(&build_buf[strlen(build_buf)], "e=%s", tmp);
> + tmp = getenv("netmask");
> + if (tmp)
> + sprintf(&build_buf[strlen(build_buf)],
> + ":%04x ", getenv_ip("netmask").s_addr);
There is an endian issue here for little endian targets. Also the %04x
is wrong, should be %08x. This will be fixed in v2.
> + else
> + sprintf(&build_buf[strlen(build_buf)], " ");
> + }
>
> tmp = getenv("serverip");
> if (tmp)
> sprintf(&build_buf[strlen(build_buf)], "h=%s ", tmp);
>
> + tmp = getenv("gatewayip");
> + if (tmp)
> + sprintf(&build_buf[strlen(build_buf)], "g=%s ", tmp);
> +
> tmp = getenv("hostname");
> if (tmp)
> sprintf(&build_buf[strlen(build_buf)], "tn=%s ", tmp);
> --
Regards,
Bin
More information about the U-Boot
mailing list