OpenBoot uses ":a", ":b", etc. partition specifiers instead of the numbered ":1", ":2", etc. that the generic ieee1275 code expects.
Instead of cruddng up the generic ieee1275 code with this, just convert in the sparc64 specific code beforehand. Committed. 2009-04-30 David S. Miller <da...@davemloft.net> * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If lettered partition specifier is found, convert to numbered. diff --git a/kern/sparc64/ieee1275/init.c b/kern/sparc64/ieee1275/init.c index 5114f76..699f963 100644 --- a/kern/sparc64/ieee1275/init.c +++ b/kern/sparc64/ieee1275/init.c @@ -64,8 +64,8 @@ grub_machine_set_prefix (void) if (grub_prefix[0] != '(') { char bootpath[IEEE1275_MAX_PATH_LEN]; + char *prefix, *path, *colon; grub_ssize_t actual; - char *prefix, *path; if (grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", &bootpath, sizeof (bootpath), &actual)) @@ -77,6 +77,17 @@ grub_machine_set_prefix (void) } /* Transform an OF device path to a GRUB path. */ + colon = grub_strchr (bootpath, ':'); + if (colon) + { + char *part = colon + 1; + + /* Consistently provide numbered partitions to GRUB. + OpenBOOT traditionally uses alphabetical partition + specifiers. */ + if (part[0] >= 'a' && part[0] <= 'z') + part[0] = '1' + (part[0] - 'a'); + } prefix = grub_ieee1275_encode_devname (bootpath); path = grub_malloc (grub_strlen (grub_prefix) _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel