Ignore:
Timestamp:
Aug 7, 2021, 9:02:29 AM (3 years ago)
Author:
aitotat
Message:
  • COMMAND_IDLE was not enough to disable standby timer from 1,8" Toshiba HDD. Apparently idle mode is the default mode. Added COMMAND_STAND_BY and that does what COMMAND_IDLE was supposed to do. Without COMMAND_STAND_BY the 1,8" Toshiba HDD experienced some random pauses (=>retry/abort... prompts) especially with Freedos 1.3RC4 but MS-DOS 7.10 (Win98) was mostly OK.
  • Added FEATURE_ENABLE_ADVANCED_POWER_MANAGEMENT command to set drive to maximum performance mode when standby timer is disabled. This feature needs a bit more work. See TODO comments in sources.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r589 r615  
    200200    jz      SHORT .NoPowerManagementSupport
    201201
     202    ; Do we need to disable APM?
     203;TODO: We should check APM feature set flag from ATA ID word 83. The above
     204;FLGH_DPT_POWER_MANAGEMENT_SUPPORTED is from ATA ID word 82
     205    mov     dl, [cs:ROMVARS.bIdleTimeout]
     206    push    dx
     207    push    dx
     208    call    AH23h_EnableOrDisableAdvancedPowerManagement
     209
     210    ; COMMAND_IDLE is not enough for Toshiba 1,8" HDD since idle mode is the default mode
     211    ; COMMAND_STAND_BY seemed to do the trick
     212    pop     dx
     213    mov     al, COMMAND_STAND_BY
     214    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_BSY, FLG_STATUS_BSY)
     215    call    Idepack_StoreNonExtParametersAndIssueCommandFromAL
     216    STORE_ERROR_FLAG_TO_DPT     FLG_INITERROR_FAILED_TO_INITIALIZE_STANDBY_TIMER
     217
     218    pop     dx
    202219    mov     al, COMMAND_IDLE
    203     mov     dl, [cs:ROMVARS.bIdleTimeout]
    204220    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_BSY, FLG_STATUS_BSY)
    205221    call    Idepack_StoreNonExtParametersAndIssueCommandFromAL
Note: See TracChangeset for help on using the changeset viewer.