Use prom_claim_chunk to allocate malloc area
[yaboot.git] / second / fs_of.c
index 17a4df3517bea60a6dbe45500df6e3610d38f7f2..2e5feb92c57b3e89b364ad162cc69ea47b6d7467 100644 (file)
@@ -92,8 +92,9 @@ of_open(struct boot_file_t* file,
      strncpy(buffer, fspec->dev, 768);
      strcat(buffer, ":");
      if (part) {
-          if (part->sys_ind == LINUX_RAID) {
-              DEBUG_F("skipping because partition is marked LINUX_RAID\n");
+          if (part->sys_ind == LINUX_RAID || part->sys_ind == LINUX_NATIVE) {
+              DEBUG_F("skipping because partition is tagged %08x\n",
+                       part->sys_ind  );
               DEBUG_LEAVE(FILE_ERR_BAD_FSYS);
               return FILE_ERR_BAD_FSYS;
          }
@@ -149,8 +150,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 +170,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);