Re: [hatari-devel] Cycle exact setting affects nf_scsidrv |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Cycle exact setting affects nf_scsidrv
- From: Uwe Seimet <Uwe.Seimet@xxxxxxxxx>
- Date: Thu, 11 Oct 2018 10:29:34 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1539246574; s=strato-dkim-0002; d=seimet.de; h=In-Reply-To:References:Message-ID:Subject:To:From:Date: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=QOqjsm64EKBd4XR4sIZjyLEl7f+noCAMQ0eXPQ0vUtQ=; b=T/6WeC3dwb3O2chd/N9Agf29q7ebMiLIXxfumTPicYzP8RM5u0QoSL9rgfLs6H3Omm vyrjI/h9XLr9kfk4V5jkkkeiAkj9Mz/+aDNu1f9uC3Dx7ahWEt48ZBwTL9zq/nip7qvj FAaadv0pQkGb0HzziYIK9VFh5TY3Q9L0a3p5SBlh4eTYKh8xFZZ+zOrEWq0mjTM+whU+ 0ySkUZL5QGzYyK07w/lXiAO3zQ95LHpYzJJS0RJSq/Ekha4+Ei6PPGK/PRN1p8auRfFp EWtxNq1LvfpvDXVfJNEHOiJ4CCAXbl0a04G4Eq1tdtfMDWtX2uIABFwwCdW2kqrXT2xD 4H+w==
Hi,
Some more information: There is the same problem when I enable prefetch
instead of cycle exact. With one of these options enabled, the first time
when I start HDDRUTIL after resetting, parts of the data provided by
nf_scsidrv.c (in particular the device names) are incomplete.
Looks as if both options have something in common that causes this.
Best regards
Uwe
> Hi,
>
> Yet another thread I'm afraid, related to the Cycle exact setting. With
> this setting disabled and the SCSI Driver for Linux installed SDRVTEST (see
> https://www.hddriver.net/en/downloads.html) the result is the attached
> logfile SDRVTEST.L1. Now I press F12, enable Cycle exact and restart
> Hatari. When running SDRVTEST again the output is broken, see attached
> SDRVTEST.L2. Now I press F12 again, disabled Cacle exact, restart and
> run SDRVTEST once more. This time the output is correct again.
>
> This means that the Cycle exact setting either influences the code
> execution of the native scsidrv_inout method in nf_scsidrv.c, or the
> emulated code of NF_SCSI (also see https://www.hddriver.net/en/downloads.html)
> behaves differently. I observe the same behavior with the Hatari 2.1.0
> release version.
>
> When launching HDDRUTIL the effect is similar: The device names are
> incomplete, as if some of the data did not make it from the native part
> into the emulated part of the code.
>
> When I double-check with Aranym, where essentially the same native SCSI
> Driver code and exactly the same emulated NF_SCSI code is running,
> everything is fine. Only on Hatari with Cycle exact enabled the results
> are not correct.
>
> Best regards
>
> Uwe
> SCSI Driver test V1.35
> ? 2014-2018 Uwe Seimet
>
> Found SCSI Driver version 1.01
>
> Buses:
> ID: 0, Name: 'Atari ACSI', Maximum transfer length: 65536 ($10000)
> ID: 1, Name: 'Atari SCSI', Maximum transfer length: 268435456 ($10000000)
> ID: 31, Name: 'Linux Generic SCSI', Maximum transfer length: 65536 ($10000)
>
> Testing bus 'Linux Generic SCSI', device ID 0
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'ATA Samsung SSD 840 '
> Firmware revision: '6B0Q'
> SCSI/SPC version: SPC-3
> Additional length: $5B
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $02
> ERROR: Additional sense length must be at least $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Maximum block number: 500118191
> Block size: 512
> Reading capacity with READ CAPACITY (16)
> Maximum block number hi: 0, maximum block number lo: 500118191
> Maximum block number: 500118191
> Block size: 512
> Logical sectors per physical sector: Unknown
> Reading last block (500118191)
> Trying to read last block + 1 (500118192)
> READ
> Reading block 0 with READ (6)
> Reading block 0 with READ (10)
> Reading block 0 with READ (12)
> READ (12) is not supported
> Reading block 0 with READ (16)
> Trying to read block 281474976710656 with READ (16)
> Reading block 0 to odd address with READ (6)
> Reading block 0 from non-existing LUN 7
> REPORT LUNS
> Number of LUNs: 1
> List of LUNs: 0
> OK
>
> Testing bus 'Linux Generic SCSI', device ID 1
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'ATA Samsung SSD 850 '
> Firmware revision: '2B6Q'
> SCSI/SPC version: SPC-3
> Additional length: $5B
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $02
> ERROR: Additional sense length must be at least $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Maximum block number: 500118191
> Block size: 512
> Reading capacity with READ CAPACITY (16)
> Maximum block number hi: 0, maximum block number lo: 500118191
> Maximum block number: 500118191
> Block size: 512
> Logical sectors per physical sector: Unknown
> Reading last block (500118191)
> Trying to read last block + 1 (500118192)
> READ
> Reading block 0 with READ (6)
> Reading block 0 with READ (10)
> Reading block 0 with READ (12)
> READ (12) is not supported
> Reading block 0 with READ (16)
> Trying to read block 281474976710656 with READ (16)
> Reading block 0 to odd address with READ (6)
> Reading block 0 from non-existing LUN 7
> REPORT LUNS
> Number of LUNs: 1
> List of LUNs: 0
> OK
>
> Testing bus 'Linux Generic SCSI', device ID 2
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'Generic STORAGE DEVICE '
> Firmware revision: '9744'
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 3
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'Generic STORAGE DEVICE '
> Firmware revision: '9744'
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 4
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'Generic STORAGE DEVICE '
> Firmware revision: '9744'
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 5
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'Generic STORAGE DEVICE '
> Firmware revision: '9744'
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 6
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: 'Generic STORAGE DEVICE '
> Firmware revision: '9744'
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
> SCSI Driver test V1.35
> ? 2014-2018 Uwe Seimet
>
> Found SCSI Driver version 1.01
>
> Buses:
> ID: 0, Name: 'Atari ACSI', Maximum transfer length: 65536 ($10000)
> ID: 1, Name: 'Atari SCSI', Maximum transfer length: 268435456 ($10000000)
> ID: 31, Name: 'Linux Generic SCSI', Maximum transfer length: 65536 ($10000)
>
> Testing bus 'Linux Generic SCSI', device ID 0
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: SPC-3
> Additional length: $5B
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $02
> ERROR: Additional sense length must be at least $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Maximum block number: 500118191
> Block size: 512
> Reading capacity with READ CAPACITY (16)
> Maximum block number hi: 0, maximum block number lo: 500118191
> Maximum block number: 500118191
> Block size: 512
> Logical sectors per physical sector: Unknown
> Reading last block (500118191)
> Trying to read last block + 1 (500118192)
> READ
> Reading block 0 with READ (6)
> Reading block 0 with READ (10)
> Reading block 0 with READ (12)
> READ (12) is not supported
> Reading block 0 with READ (16)
> Trying to read block 281474976710656 with READ (16)
> Reading block 0 to odd address with READ (6)
> Reading block 0 from non-existing LUN 7
> REPORT LUNS
> Number of LUNs: 1048576
> List of LUNs: 0
> OK
>
> Testing bus 'Linux Generic SCSI', device ID 1
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: SPC-3
> Additional length: $5B
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $02
> ERROR: Additional sense length must be at least $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Maximum block number: 500118191
> Block size: 512
> Reading capacity with READ CAPACITY (16)
> Maximum block number hi: 0, maximum block number lo: 500118191
> Maximum block number: 500118191
> Block size: 512
> Logical sectors per physical sector: Unknown
> Reading last block (500118191)
> Trying to read last block + 1 (500118192)
> READ
> Reading block 0 with READ (6)
> Reading block 0 with READ (10)
> Reading block 0 with READ (12)
> READ (12) is not supported
> Reading block 0 with READ (16)
> Trying to read block 281474976710656 with READ (16)
> Reading block 0 to odd address with READ (6)
> Reading block 0 from non-existing LUN 7
> REPORT LUNS
> Number of LUNs: 1048576
> List of LUNs: 0
> OK
>
> Testing bus 'Linux Generic SCSI', device ID 2
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 3
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 4
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 5
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR
>
> Testing bus 'Linux Generic SCSI', device ID 6
> CheckDev()
> Checking with illegal bus ID
> Checking with legal bus ID
> Open/Close()
> Available handles: 32
> TEST UNIT READY
> Medium not present
> INQUIRY
> Calling with legal data
> Device type: Direct Access
> Device name: ''
> Firmware revision: ''
> SCSI/SPC version: -
> Additional length: $29
> Calling with non-existing LUN 7
> ERROR: Call failed: 2
> REQUEST SENSE
> Calling REQUEST SENSE for existing LUN 0
> Additional sense length: $0A
> Calling REQUEST SENSE for non-existing LUN 7
> ERROR: Call failed: 2
> ERROR: Call was not properly rejected
> Expected: SenseKey $05 ($00), ASC $25 ($00)
> Calling REQUEST SENSE again for existing LUN 0
> READ CAPACITY
> Reading capacity with READ CAPACITY (10)
> Medium not present
> REPORT LUNS
> No medium inserted
> ERROR