2008-01-22 Robert Millan <rmh@aybabtu.com>
* disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any device that doesn't look like an SD card. * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag. * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when found.
This commit is contained in:
parent
9dad816d3d
commit
2563862970
4 changed files with 75 additions and 2 deletions
|
@ -30,6 +30,33 @@ grub_ofdisk_iterate (int (*hook) (const char *name))
|
|||
|
||||
int dev_iterate (struct grub_ieee1275_devalias *alias)
|
||||
{
|
||||
grub_dprintf ("disk", "disk name = %s\n", alias->name);
|
||||
|
||||
if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY))
|
||||
{
|
||||
grub_ieee1275_phandle_t dev;
|
||||
char tmp[8];
|
||||
|
||||
if (grub_ieee1275_finddevice (alias->path, &dev))
|
||||
{
|
||||
grub_dprintf ("disk", "finddevice (%s) failed\n", alias->path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (grub_ieee1275_get_property (dev, "iconname", tmp,
|
||||
sizeof tmp, 0))
|
||||
{
|
||||
grub_dprintf ("disk", "get iconname failed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (grub_strcmp (tmp, "sdmmc"))
|
||||
{
|
||||
grub_dprintf ("disk", "device is not an SD card\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (! grub_strcmp (alias->type, "block"))
|
||||
hook (alias->name);
|
||||
else if ((! grub_strcmp (alias->type, "scsi"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue