On 26/04/11 11:08, Tarl Neustaedter wrote:
From glancing at the include file (usr/src/uts/sys/scsi/conf/autoconf.h, should be in the exported opensolaris), the bits 0x58 enable:
- Global disconnect/reconnect
- Global Linked Commands
- Global Parity Support
Notably it does *not* include global synchronous transfer capability, tagged command support or any of the fast/wide possibilities. I can't find where the default scsi_options are for the esp driver, but presumably it had some of those capabilities enabled, which aren't supported by the qemu scsi driver.
Oh I see. By enabling romvec debugging in OpenBIOS, I can see that it looks for a property named "scsi-options" in the ESP node of the device tree. Therefore the following patch may persuade Solaris to set this option in the ESP kernel module by default:
diff --git a/openbios-devel/drivers/esp.c b/openbios-devel/drivers/esp.c index 2dfc2bd..d6fa9bc 100644 --- a/openbios-devel/drivers/esp.c +++ b/openbios-devel/drivers/esp.c @@ -383,6 +383,12 @@ ob_esp_initialize(__attribute__((unused)) esp_private_t **esp) push_str("scsi"); fword("device-type");
+ /* set scsi-options to help Solaris boot */ + PUSH(0x58); + fword("encode-int"); + push_str("scsi-options"); + fword("property"); + PUSH(0x24); fword("encode-int"); PUSH(0);
Nick - do you think you could do a quick test on this one?
ATB,
Mark.