qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 3/4] scsi: fix fw path


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH 3/4] scsi: fix fw path
Date: Fri, 18 Nov 2011 16:32:01 +0100

The pre-1.0 firmware path for SCSI devices already included the LUN
using the suffix argument to add_boot_device_path.  Avoid that it is
included twice, and, for consistency with the OpenFirmware spec:
1) move the "channel" to a separate device path; 2) convert the colons
to commas; 3) use hex for the numbers.

This is compatible with SeaBIOS USB boot, which only looks at the
prefix for the usb-storage device (e.g. 
/address@hidden/address@hidden,2/address@hidden),
and never at the SCSI part.

Signed-off-by: Paolo Bonzini <address@hidden>
---
 hw/scsi-bus.c  |    4 ++--
 hw/scsi-disk.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
index 61c883f..07d6a7d 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi-bus.c
@@ -1307,8 +1307,8 @@ static char *scsibus_get_fw_dev_path(DeviceState *dev)
     SCSIDevice *d = DO_UPCAST(SCSIDevice, qdev, dev);
     char path[100];
 
-    snprintf(path, sizeof(path), "address@hidden:%d:%d", qdev_fw_name(dev),
-             d->channel, d->id, d->lun);
+    snprintf(path, sizeof(path), "address@hidden/address@hidden,%x", 
d->channel,
+             qdev_fw_name(dev), d->id, d->lun);
 
     return strdup(path);
 }
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 9da6d36..16a4714 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -1581,7 +1581,7 @@ static int scsi_initfn(SCSIDevice *dev)
     bdrv_set_buffer_alignment(s->qdev.conf.bs, s->qdev.blocksize);
 
     bdrv_iostatus_enable(s->qdev.conf.bs);
-    add_boot_device_path(s->qdev.conf.bootindex, &dev->qdev, ",0");
+    add_boot_device_path(s->qdev.conf.bootindex, &dev->qdev, NULL);
     return 0;
 }
 
-- 
1.7.7.1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]