]> git.ozlabs.org Git - yaboot.git/blobdiff - second/fs_of.c
Merge branch 'netboot'
[yaboot.git] / second / fs_of.c
index f6b2050da4731aa5fb8c9766c02f47357091a621..bd481e43ed66007b2430f63348a029e519bf1d75 100644 (file)
@@ -149,8 +149,11 @@ of_net_open(struct boot_file_t* file,
                    *p = '\\';
      }
 
-     DEBUG_F("siaddr <%s>; filename <%s>; ciaddr <%s>; giaddr <%s>;\n",
-               fspec->siaddr, filename, fspec->ciaddr, fspec->giaddr);
+     DEBUG_F("siaddr <%s>; filename <%s>; ciaddr <%s>; giaddr <%s>;"
+             " ipv6 <%d>\n",
+             fspec->siaddr, filename, fspec->ciaddr, fspec->giaddr,
+             fspec->is_ipv6);
+
      strncpy(buffer, fspec->dev, 768);
      /* If we didn't get a ':' include one */
      if (fspec->dev[strlen(fspec->dev)-1] != ':')
@@ -166,6 +169,10 @@ of_net_open(struct boot_file_t* file,
      if (new_tftp) {
           strcat(buffer, fspec->siaddr);
           strcat(buffer, ",");
+
+          if (fspec->is_ipv6 && (strstr(filename, "filename=") == NULL))
+               strcat(buffer, "filename=");
+
           strcat(buffer, filename);
           strcat(buffer, ",");
           strcat(buffer, fspec->ciaddr);
@@ -176,6 +183,8 @@ of_net_open(struct boot_file_t* file,
           strcat(buffer, ",");
           strcat(buffer, fspec->tftp_retries);
           strcat(buffer, ",");
+          strcat(buffer, fspec->subnetmask);
+          strcat(buffer, ",");
           strcat(buffer, fspec->addl_params);
      } else {
           strcat(buffer, ",");