On Tue, Apr 26, 2011 at 12:56 PM, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk wrote:
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);
This would actually be actually fixing the symptom instead of the cause. Is ok if the cause is tagged queue support though.
Nick - do you think you could do a quick test on this one?
ATB,
Mark.
-- Mark Cave-Ayland - Senior Technical Architect PostgreSQL - PostGIS Sirius Corporation plc - control through freedom http://www.siriusit.co.uk t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you