diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/ppc/spapr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6285f7211f..4d0a84f3ec 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2663,6 +2663,10 @@ static char *spapr_get_fw_dev_path(FWPathProvider *p, BusState *bus, * swap 0100 or 10 << or 20 << ( target lun-id -- srplun ) */ unsigned id = 0x1000000 | (d->id << 16) | d->lun; + if (d->lun >= 256) { + /* Use the LUN "flat space addressing method" */ + id |= 0x4000; + } return g_strdup_printf("%s@%"PRIX64, qdev_fw_name(dev), (uint64_t)id << 32); } else if (usb) { |